동적 웹페이지가 주로 정적 콘텐츠로 구성된 시나리오에서 PHP로 HTTP 캐시 헤더를 적용하면 웹사이트 성능을 크게 향상시킬 수 있습니다. . 이 가이드에서는 효과적인 캐싱을 위한 필수 헤더를 자세히 살펴보겠습니다.
cache-control: private, max-age=180 - 다음에 대한 개인 캐시를 설정합니다. 180초. 개인 캐시는 개별 사용자만 액세스할 수 있으므로 여러 클라이언트 간의 공유를 방지합니다.
cache-control: public, max-age=180 - 공용 캐시를 180초로 설정합니다. 공용 캐시는 모든 클라이언트가 사용할 수 있으므로 공유 액세스가 가능합니다.
최종 수정: GMT 날짜 및 시간 - 날짜 및 시간 제공 콘텐츠가 마지막으로 수정되었을 때 브라우저에서 업데이트를 확인할 수 있습니다.
ETag: (고유 식별자) - 콘텐츠의 고유 상태를 나타내는 해시 또는 체크섬을 생성합니다. 브라우저는 ETag 헤더를 사용하여 마지막 요청 이후 콘텐츠가 변경되었는지 확인합니다.
If-Modified-Since: GMT 날짜 및 시간 - 클라이언트가 전송합니다. 자원의 마지막으로 알려진 수정 날짜. 해당 날짜 이후 변경 사항이 없으면 서버는 304 Not Modified 상태로 응답하여 불필요한 콘텐츠 검색을 방지합니다.
If-None-Match: (고유 식별자) - 클라이언트 리소스에 대해 마지막으로 알려진 ETag 값을 보냅니다. ETag가 서버의 현재 값과 일치하면 304 Not Modified 상태가 반환됩니다.
PHP에서 이러한 헤더를 구현하려면 다음 샘플 코드를 고려하세요.
<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT'; $etag = md5($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}\""); }</code>
위 내용은 PHP에서 HTTP 캐시 헤더를 사용하여 웹사이트 성능을 향상시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!