웹 성능을 향상시키기 위해 PHP와 함께 HTTP 캐시 헤더를 어떻게 활용할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-11-05 16:18:02
원래의
450명이 탐색했습니다.

How can I utilize HTTP cache headers with PHP to enhance web performance?

HTTP 캐시 헤더: PHP로 웹 성능 향상

주로 정적인 콘텐츠가 포함된 웹사이트의 경우 HTTP 캐시 헤더를 구현하면 성능이 크게 향상될 수 있습니다. PHP는 이 작업에 도움이 되는 여러 내장 기능을 제공합니다.

필수 캐시 헤더

캐싱을 활성화하려면 다음 헤더 사용을 고려하세요.

  1. Cache-Control: 캐시 정책을 지정합니다. 공개적으로 캐시하면 안 되는 비공개 콘텐츠의 경우 private_no_expire를 사용하세요. 수명이 긴 공개 콘텐츠의 경우 public, max-age=<만료 시간>을 사용하세요.
  2. 만료: 캐시된 콘텐츠의 만료 날짜를 설정합니다. 변경되지 않는 콘텐츠의 경우 먼 날짜를 설정하는 것이 좋습니다.
  3. 최종 수정: 콘텐츠가 마지막으로 수정된 시간을 나타냅니다. 이를 통해 브라우저는 캐시된 콘텐츠가 여전히 최신 상태인지 확인할 수 있습니다.
  4. ETag: 콘텐츠의 고유 식별자입니다. ETag가 If-None-Match 요청 헤더의 값과 일치하면 브라우저는 콘텐츠가 변경되지 않았다고 가정하고 캐시된 버전을 제공할 수 있습니다.

조건부 요청 처리

성능을 더욱 최적화하고 조건부 요청을 처리합니다.

<code class="php">$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 &amp;&amp; $if_none_match == $etag) || (!$if_none_match)) &amp;&amp;
    ($if_modified_since &amp;&amp; $if_modified_since == $tsstring)) {
    header('HTTP/1.1 304 Not Modified');
    exit();
} else {
    header("Last-Modified: $tsstring");
    header("ETag: \"{$etag}\"");
}</code>
로그인 후 복사

If-None-Match 헤더가 ETag와 일치하거나 If-Modified-Since 헤더가 Last-Modified 날짜와 일치하는 경우 304 Not Modified 응답은 다음과 같습니다. 반환되어 캐시된 콘텐츠가 충분함을 나타냅니다. 그렇지 않으면 서버가 최신 콘텐츠를 반환합니다.

이러한 캐시 헤더를 구현하면 웹 서버의 로드를 크게 줄이고 더 빠른 페이지 로드로 사용자 경험을 향상할 수 있습니다.

위 내용은 웹 성능을 향상시키기 위해 PHP와 함께 HTTP 캐시 헤더를 어떻게 활용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!