]와 같은 메타 태그를 통해 정적 페이지 캐싱을 비활성화할 수 있습니다. 웹페이지."/> ]와 같은 메타 태그를 통해 정적 페이지 캐싱을 비활성화할 수 있습니다. 웹페이지.">

>백엔드 개발 >PHP 문제 >PHP에서 브라우저 캐싱을 비활성화하는 방법

PHP에서 브라우저 캐싱을 비활성화하는 방법

王林
王林원래의
2020-11-02 13:58:522849검색

PHP에서 브라우저 캐싱을 비활성화하는 방법: [361b754d440b709e252b10b3237fa14b]와 같은 메타 태그를 통해 정적 페이지의 캐싱을 비활성화할 수 있습니다. 만료는 웹페이지의 만료 시간.

PHP에서 브라우저 캐싱을 비활성화하는 방법

방법은 다음과 같습니다.

(권장 동영상 튜토리얼: php 동영상 튜토리얼)

1. 정적 페이지의 경우(메타 태그를 통해 설정)

<!--expires用于设定网页的过期时间,一旦过期就必须从服务器上重新加载.时间必须使用GMT格式-->
<meta http-equiv="expires" content="0" />

또는 pragma no-cache, pragma를 통해 설정 http-equiv 속성에 나타나며, content 속성의 no-cache 값을 사용하여 웹 페이지를 캐시할지 여부를 나타냅니다(일부 브라우저에서는 속도 향상을 위해 뷰어가 탐색한 페이지를 캐시합니다. 다음 정의를 통해, 브라우저는 일반적으로 페이지를 캐시하지 않으며 브라우저는 오프라인으로 탐색할 수 없습니다.

<meta http-equiv="pragma" content="no-cache" />

Cache-Control: 요청과 응답이 뒤따르는 캐싱 메커니즘을 지정하는 캐시 제어입니다. 요청 메시지 또는 응답 메시지에서 Cache-Control을 설정해도 다른 메시지를 처리하는 동안 캐싱 프로세스가 수정되지 않습니다.

요청의 캐시 지침에는 no-cache, no-store, max-age, max-stale, min-fresh, only-if-cached 등이 포함됩니다. 응답 메시지의 지침에는 public, private, no-cache가 포함됩니다. 캐시, 저장 없음, 변환 없음, 재검증 필수, 프록시 재검증, 최대 수명.

각 메시지의 일부 지침은 다음과 같은 의미를 갖습니다.

공개: 모든 캐시 영역에서 응답을 캐시할 수 있음을 나타냅니다.

비공개: 단일 사용자에 대한 응답 메시지의 전체 또는 일부를 공유 캐시에서 처리할 수 없음을 나타냅니다. 이를 통해 서버는 다른 사용자의 요청에 유효하지 않은 사용자의 부분 응답만 설명할 수 있습니다.

no-cache: 요청 또는 응답 메시지를 캐시할 수 없음을 나타냅니다.

no-store: 중요한 정보가 실수로 공개되는 것을 방지하기 위해 사용됩니다. 요청 메시지에 이를 보내면 요청 메시지와 응답 메시지 모두 캐싱을 사용하게 됩니다.

max-age: 클라이언트가 지정된 시간(초)보다 크지 않은 수명으로 응답을 받을 수 있음을 나타냅니다.

min-fresh: 클라이언트가 현재 시간에 지정된 시간을 더한 것보다 짧은 응답 시간으로 응답을 받을 수 있음을 나타냅니다.

max-stale: 클라이언트가 제한 시간 이후에 응답 메시지를 받을 수 있음을 나타냅니다. max-stale 메시지 값을 지정하면 클라이언트는 지정된 제한 시간 값을 초과하는 응답 메시지를 수신할 수 있습니다.

참고: HTTP1.1에는 Cache-Control 헤더가 추가되어 다른 방법에 비해 더 세부적인 캐시 제어가 가능합니다.

<meta http-equiv="Cache-Control" content="no-cache,no-store, must-revalidate">
header(&#39;Cache-Control: max-age=3600*24&#39;);//缓存1天,表示最大生存期是1天,超过1天浏览器必须去服务器重新读取,这个时间是从用户第一次读取页面时开始计时的

2. PHP 페이지의 경우:

동적 페이지의 경우 캐시된 코드는 HTML 태그 출력 앞에 배치되어야 합니다. 그렇지 않으면 오류가 발생합니다.

<?php 
header(&#39;Cache-Control:no-cache,must-revalidate&#39;);   
header(&#39;Pragma:no-cache&#39;);   
header("Expires:0"); 
?>

Last-Modified: 문서가 마지막으로 수정된 시간입니다. 사용법은 다음과 같습니다.

1: 정적 파일인 경우 클라이언트는 캐시에 시간을 보내고 Apache는 이를 비교하여 수정 사항이 없는 것으로 확인되면 상태 코드를 직접 반환합니다. 304이고 바이트 수가 매우 적습니다.

2: PHP 동적 파일인 경우 클라이언트는 비교 시간을 전송하며, 수정 시간이 동일하면 1024바이트만 반환됩니다. 알 수 없습니다. PHP가 생성하는 경우 파일이 매우 크고 1024만 반환하므로 클라이언트는 서버에서 보낸 수정 시간을 기반으로 캐시된 파일을 자동으로 표시합니다.

참고: Last-Modified 헤더가 설정되지 않은 경우 Cache-Control 및 Expires 설정만 해도 작동하지만 각 요청은 실제 파일 바이트 수를 반환해야 합니다. 1024

php는 Last-Modified 헤더를 설정하지 않습니다. 샘플 코드는 다음과 같습니다:

header(&#39;Last-Modified: &#39;.gmdate(&#39;D, d M Y 01:01:01&#39;,$time).&#39; GMT&#39;);//使用的是格林尼治时间,$time是指文件添加时候的时间戳

관련 권장 사항: php training

위 내용은 PHP에서 브라우저 캐싱을 비활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.