웹 캐싱 : 웹 개발의 중요하지만 기발한 측면. 브라우저와 서버 사이에는 복잡한 캐시 네트워크가있어 인터넷 트래픽을 조용히 최적화합니다. 그러나이 시스템은 신중하게 관리되지 않으면 당황스러운 불일치를 소개 할 수 있습니다.
키 테이크 아웃 :
웹 캐싱은 HTTP 상태 코드 및 헤더 (예 : , 및 )에 크게 의존합니다. 는 가장 중요하며 , , , 및 .
크롬과 에지는 독특한 행동을 나타냅니다. 특히 AJAX 호출로 충돌을 캐싱하지 않으려면 페이지 컨텐츠 및 AJAX 데이터에 대해 별개의 URL을 사용하십시오. 캐시 된 JSON이 예상되는 HTML을 대체하는 시나리오를 피합니다.
자체 서명 된 SSL 인증서는 크롬 및 이와 유사한 브라우저에서 캐싱을 방해합니다. 그들은 캐싱을 효과적으로 비활성화하여 지역 테스트와 라이브 배포 사이의 불일치로 이어집니다.
HTTP 헤더 관리 :
Last-ModifiedEtag 캐싱 동작은 HTTP 상태 코드 및 헤더에 의해 결정됩니다. 브라우저/프록시는 캐시 된 데이터를 제공하거나 서버의 데이터 신선함을 확인하거나 새로운 데이터를 가져옵니다. 헤더는 핵심입니다 :
Cache-ControlCache-Control 또는 no-store : no-cache 모든 캐싱을 방지합니다. 는 캐시 된 데이터를 제공하기 전에 브라우저/프록시가 public 및/또는 private를 사용하여 서버를 확인할 수 있도록 허용합니다.
max-age 또는 :
는 어디에서나 캐싱 할 수 있습니다. 캐싱을 사용자의 브라우저로 제한합니다
: 캐시 유효성 기간을 초 단위로 지정합니다
예제 (php) :
예제 (node.js/express) :
페이지 및 Ajax 데이터의 고유 한 URL :
적절한 헤더 설정이 있더라도 특히 뒤로 버튼을 사용할 때 브라우저 불일치가 발생할 수 있습니다. Chrome과 Edge는 초기 페이지 상태로 되돌릴 수 있으며 Firefox와 Safari는 마지막으로 알려진 상태를 유지합니다. 페이지에 입은 테이블을 고려하십시오
<: :> 초기 페이지로드 :
위 내용은 캐싱 수수께끼를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!