"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > HTTP 캐시 헤더는 어떻게 PHP 웹사이트 성능을 최적화할 수 있습니까?

HTTP 캐시 헤더는 어떻게 PHP 웹사이트 성능을 최적화할 수 있습니까?

2024년 11월 10일에 게시됨
검색:416

How can HTTP Cache Headers Optimize PHP Website Performance?

HTTP 캐시 헤더를 사용하여 PHP 웹사이트 성능 최적화

고급 캐시 시스템 및 프레임워크의 가용성에도 불구하고 때로는 기본 HTTP를 구현해야 하는 경우가 있습니다. 웹 사이트 성능을 향상시키기 위해 헤더를 캐시합니다. 특히 특정 캐시 기능이 부족한 PHP 5.1.0 웹사이트의 경우 헤더가 중요한 역할을 합니다.

PHP 웹사이트의 효과적인 캐시 헤더

효과적인 캐싱을 활성화하려면 다음을 고려하세요. 다음 헤더:

  • Last-Modified: 브라우저가 마지막 방문 이후 내용이 변경되었는지 확인하는 데 사용하는 문서의 마지막 수정 날짜를 설정합니다.
  • ETag: 문서의 고유 식별자를 지정하여 브라우저가 이미 최신 버전을 가지고 있는지 확인할 수 있습니다.
  • Expires: 절대 만료 시간을 설정합니다. 문서에 대해 해당 시간 이후에는 문서를 캐시하지 않도록 브라우저에 지시합니다.
  • Cache-Control: 브라우저가 문서를 캐시해야 하는 방법과 기간을 제어합니다. 누구나 문서를 캐시할 수 있도록 "공개"로 설정하거나 개별 사용자에게 캐싱을 제한하는 "비공개"로 설정할 수 있습니다. 공개 캐싱을 허용하지 않고 더 긴 캐싱 길이가 필요한 경우 "private_no_expire" 사용을 고려할 수 있습니다.

조건부 요청 구현

캐시 헤더 설정 외에도 , "If-Modified-Since" 및 "If-None-Match"와 같은 조건부 요청을 처리하는 것이 중요합니다. 이러한 요청을 통해 브라우저는 문서가 특정 날짜 이후 변경되었는지 또는 마지막 방문 이후 ETag가 변경되었는지 확인할 수 있습니다.

콘텐츠가 변경되지 않은 경우 "304 Not Modified" 상태를 반환할 수 있습니다. 브라우저가 캐시된 버전을 계속 사용할 수 있음을 나타내는 코드입니다. 이 효율적인 접근 방식은 불필요한 다운로드를 최소화하고 웹 사이트 로딩 속도를 높입니다.

다음 PHP 코드 샘플은 조건부 요청을 처리하는 방법을 보여줍니다.

$timestamp = /* PHP script to generate a unique timestamp */;
$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = $language . $timestamp;

$if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
$if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false;
if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) &&
    ($if_modified_since && $if_modified_since == $tsstring))
{
    header('HTTP/1.1 304 Not Modified');
    exit();
}
else
{
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}

캐시 헤더를 구현하고 조건부 요청을 효과적으로 처리함으로써 PHP 웹사이트의 성능과 사용자 경험을 크게 향상시킬 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3