현재 위치: > 최신 기사 목록> 헤더 ()를 사용하여 브라우저 캐시를 제어하여 성능을 향상시킵니다

헤더 ()를 사용하여 브라우저 캐시를 제어하여 성능을 향상시킵니다

M66 2025-05-17

웹 개발에서 웹 사이트의 성능이 중요합니다. 브라우저 캐싱은 웹 사이트 성능을 향상시키는 데 중요한 요소입니다. 브라우저 캐시를 합리적으로 사용하면 웹 사이트로드 시간을 크게 줄이고 사용자 경험을 향상 시키며 서버 부담을 줄일 수 있습니다. 이 기사는 PHP의 헤더 () 기능을 사용하여 적절한 캐싱 전략을 설정하여 브라우저 캐싱을 제어하고 웹 사이트 성능을 향상시키는 방법을 소개합니다.

브라우저 캐싱이란 무엇입니까?

브라우저 캐싱은 사용자의 로컬 장치에 정적 리소스 (예 : 이미지, CSS, JavaScript 파일 등)를 저장하여 동일한 페이지에 액세스 할 때 사용자의로드 시간을 줄이는 메커니즘입니다. 사용자가 같은 페이지에 다시 액세스하면 브라우저는 서버에서 다시 요청하지 않고 캐시에서 자원을 직접로드하여 페이지로드 속도를 높일 수 있습니다.

PHP의 헤더 ()를 사용하여 브라우저 캐시를 제어하십시오

PHP에서는 헤더 () 함수를 사용하여 HTTP 헤더를 설정하여 브라우저의 캐시 동작을 제어 할 수 있습니다. 캐시 제어 헤더를 합리적으로 구성함으로써 리소스로드를 최적화하고 중복 네트워크 요청을 줄일 수 있습니다.

캐시 제어 헤더를 설정하십시오

다음은 브라우저 캐시를 제어하는 ​​몇 가지 일반적인 HTTP 헤더입니다.

  1. 캐시 제어 : 캐시 정책을 지정합니다.

  2. 만료 : 자원이 만료되는 시간을 설정합니다.

  3. ETAG : 리소스가 업데이트되었는지 여부를 결정하기 위해 리소스의 고유 식별자를 제공합니다.

  4. 마지막으로 수정 : 자원이 마지막으로 수정 된 시간을 지정합니다.

샘플 코드

 <?php
// 캐시 제어 헤더를 설정하십시오,브라우저에 정적 리소스를 캐시하도록 지시하십시오,그리고 캐시 시간은 하루입니다
header("Cache-Control: max-age=86400, public");

// 설정 Expires 머리,설정缓存的过期时间为明天
$expires = gmdate("D, d M Y H:i:s", strtotime("+1 day")) . " GMT";
header("Expires: $expires");

// 설정 ETag 머리,리소스의 컨텐츠 해시를 고유 식별자로 사용하십시오
$etag = md5(file_get_contents("path/to/your/resource"));
header("ETag: \"$etag\"");

// 설정 Last-Modified 머리,설정资源的最后修改时间
$lastModified = gmdate("D, d M Y H:i:s", filemtime("path/to/your/resource")) . " GMT";
header("Last-Modified: $lastModified");
?>

자세한 설명

1. 캐시 제어

캐시 제어 헤더는 캐시의 특정 정책을 지정하는 데 사용될 수 있으며 일반적인 옵션은 다음과 같습니다.

  • max-age = <seconds> : 브라우저에서 리소스를 몇 초 만에 캐시 할 수있는 최대 시간을 지정합니다. 예를 들어, Max-Age = 86400은 자원이 하루 동안 캐시에 저장 될 수 있음을 의미합니다.

  • 캐시 없음 : 캐시에 이미 사본이 있더라도 요청할 때마다 리소스의 유효성을 확인하도록 브라우저에 지시합니다.

  • 없음 : 요청이 요청 될 때마다 리소스가 캐시되지 않으며 서버에서 다시 가져 오는 것을 의미합니다.

2. 만료

만료 헤더 자원의 만료 시간을 설정합니다. 브라우저는이 시간을 캐시의 유효 여부를 결정하기위한 기초로 사용합니다. 현재 시간이 만료 시간을 초과하면 브라우저는 서버를 다시 반복하여 리소스를 얻습니다. 이번에는 특정 날짜와 시간입니다. gmdate () 함수는 일반적으로 GMT 형식의 시간 문자열을 생성하는 데 사용됩니다.

 $expires = gmdate("D, d M Y H:i:s", strtotime("+1 day")) . " GMT";
header("Expires: $expires");

3. Etag

ETAG는 서버에서 생성 한 식별자이며, 일반적으로 자원 컨텐츠의 해시입니다. ETAG 를 통해 브라우저는 로컬 캐시 리소스가 수정되었는지 여부를 결정할 수 있습니다. 서버에서 반환 한 ETAGETAG가 동일하면 브라우저는 로컬 캐시를 사용할 수 있습니다. 그렇지 않으면 리소스가 서버에서 다시 검색됩니다.

4. 최종 수정

마지막으로 변형 된 헤더는 리소스의 마지막 수정 시간을 나타냅니다. 브라우저가 요청을 보내면이 시간을 서버로 전송하고 서버는 수정 시간에 따라 리소스가 변경되었는지 여부를 결정합니다. 리소스가 변경되지 않은 경우 304 상태 코드가 반환되어 브라우저에 캐시를 사용하도록 지시합니다.

이 캐시 헤더를 결합하여 성능을 향상시키는 방법은 무엇입니까?

  1. 정적 리소스의 캐싱 : 이미지, CSS 및 JavaScript 파일의 경우 일반적으로 하루 이상 더 긴 캐시 시간을 설정할 수 있습니다. Cache-Control을 사용하여 Max-Age = 86400 설정 브라우저는 매번 서버를 요청하지 않고 이러한 파일을 캐시합니다.

  2. 동적 리소스의 캐시 : 동적 컨텐츠 (예 : Page HTML)의 경우 마지막으로 수정 된 또는 ETAG를 사용하여 리소스가 실제로 수정 된 경우에만 다시로드되도록 할 수 있습니다. 이것은 불필요한 요청을 효과적으로 줄일 수 있습니다.

  3. 캐시 제어 실패 : 만료를 사용하여 합리적인 만료 시간을 설정하여 캐시가 만료되고 불필요한 리소스 재 장전을 피할 때 여전히 유효합니다.

URL 도메인 이름을 바꾸십시오

실제 개발에서 우리는 코드에서 외부 리소스의 URL을 사용할 수 있습니다. 이러한 리소스의 도메인 이름이 변경되면 간단한 수정으로 캐시 정책을 업데이트 할 수 있습니다.

예를 들어 다음 URL이 있다고 가정합니다.

 $url = "http://example.com/resource";

다음 코드를 사용하여 exames.com을 M66.net 으로 바꾸어 새 도메인 이름의 캐시 제어를 보장 할 수 있습니다.

 $url = str_replace("example.com", "m66.net", $url);

이러한 방식으로 캐시 제어에 영향을 미치지 않고 코드의 도메인 이름을 쉽게 변경할 수 있습니다.

결론적으로

합리적인 캐싱 제어는 웹 사이트 성능을 향상시키기위한 주요 팁 중 하나입니다. PHP의 Header () 함수를 통해 브라우저가 리소스를 효과적으로 캐시 할 수 있도록 다른 캐시 헤더를 설정하여 페이지로드 속도를 향상시키고 서버 압력을 줄일 수 있습니다. 캐시 제어 , 만료 , ETAG최종 수정을 사용하면 웹 사이트가 성능이 최적화되도록 할 수 있습니다.

이 기사가 PHP를 사용하여 브라우저 캐시를 제어하여 웹 사이트 성능을 향상시키는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다.