캐싱 기술은 웹사이트 애플리케이션에서 매우 중요합니다. 서버 요청 부담을 줄이고 사용자 검색 속도를 높이는 데 없어서는 안 될 역할을 합니다. 어제 누군가가 캐싱 기술에 대한 관심을 불러일으켰던 브라우저 캐싱의 원리에 대해 질문했습니다. 브라우저의 캐싱 원리를 소개합니다.
캐싱 기술을 소개하기 전에 먼저 LAMP 웹사이트의 가격 차트를 살펴보겠습니다. 아키텍처 다이어그램을 통해 웹사이트의 전반적인 캐시를 명확하게 이해할 수 있습니다.
다음은 LAMP 캐시 다이어그램입니다.
LAMP 캐시 다이어그램
그림에서 웹사이트 캐시는 주로 다섯 부분으로 나누어져 있음을 알 수 있습니다.
서버 캐시: 주로 정적 서버 nginx 및 squid 기반 웹 역방향 프록시 및 apache2의 mod_proxy 및 mod_cache 모듈
브라우저 캐시: 페이지 HTML 캐시 및 이미지 js, CSS 및 기타 리소스 캐시 포함
PHP 캐시: 무료 PHP 버퍼 가속이 많이 있습니다.
메모리 캐시: 주로 memcache의 분산 캐싱 메커니즘을 사용
데이터베이스 캐시: 데이터베이스 캐시는 물론 데이터 저장 프로세스, 연결 풀 기술 등을 구성하여
제 언어 표현 능력은 제한되어 있으므로 먼저 그림을 보면 더 직관적이고 간결합니다.
위 그림에서 알 수 있습니다. 브라우저 캐시는 주로 두 부분으로 나뉩니다.
페이지 html의 캐시
그림, CSS, js, 플래시 등의 캐싱
브라우저 캐싱은 페이지 정보를 사용자의 로컬 컴퓨터 하드 드라이브와 서버 캐싱은 사용자가 방문한 페이지를 서버의 하드 드라이브에 저장하는 것을 기반으로 합니다
페이지 캐싱 상태는 하나의 브라우저에 의해 결정됩니다. 정보를 요청하고 다른 하나는 서버 응답 정보입니다. 주로 Pragma를 포함합니다: no-cache, Cache-Control, Expires, Last-Modified, If-Modified-Since. 그 중 Pragma: no-cache는 HTTP/1.0으로 지정되고, Cache-Control은 HTTP/1.1로 지정됩니다.
직접 그린 작동 원리 다이어그램:
그림에서 원리가 주로 세 단계로 나누어져 있음을 알 수 있습니다.
첫 번째 요청: 브라우저는 Expires, Cache-와 함께 http 헤더를 전달합니다. Control, Last-Modified/Etag가 서버에 요청됩니다. 이때 서버는 첫 번째 요청의 Last-Modified/Etag를 기록합니다
다시 요청: 브라우저가 다시 요청하면 Expires, Cache-가 함께 제공됩니다. Control, If-Modified- Since/Etag가 서버에 요청
서버는 처음 기록된 Last-Modified/Etag와 다시 요청된 If-Modified-Since/Etag를 비교하여 업데이트가 필요한지 판단하고, 그런 다음 요청
에 응답합니다.
Cache-Control
Cache-Control의 주요 매개변수: private/public Public 응답은 캐시되어 여러 사용자에게 공유됩니다. 비공개 응답은 비공개로만 캐시될 수 있으며 사용자 간에 공유될 수 없습니다.
Cache-Control: no-cache: 캐시하지 않음
Cache-Control: max-age=x: 캐시 시간(초)
Cache-Control: must-revalidate: 페이지가 만료된 경우 서버로 이동 Get .
Expires: 표시된 설정 페이지의 만료 시간
Last-Modified: 요청 개체의 마지막 수정 시간을 사용하여 캐시가 만료되었는지 여부를 확인합니다. 일반적으로 파일의 시간 정보로 생성됩니다. If-Modified-Since: 클라이언트는 함께 제공되는 요청을 보냅니다. 정보는 브라우저 캐시 요청 개체의 마지막 수정 날짜를 참조하며, 이는 서버 측의 마지막 수정 날짜와 비교하는 데 사용됩니다
Etag: ETag는 다음과 같습니다. 웹 리소스와 연관될 수 있는 토큰(토큰)입니다. Last-Modified와 같은 기능은 거의 없지만 서버 판단의 정확성을 높이기 위해 일반적으로 Last-Modified와 함께 사용되는 식별자이기도 합니다
캐시에 대해 Images, CSS, js, flash
mod_expires 모듈 컴파일:
Cd /root/httpd- 2.2.3/modules/metadata
/usr/local/apache/bin/apxs -i -a -c mod_expires.c //컴파일
httpd.conf 구성 편집: 다음 콘텐츠 추가
<IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month" ExpiresByType text/html "access plus 1 months" ExpiresByType text/css "access plus 1 months" ExpiresByType 웹사이트를 날게 만드는 브라우저 캐싱 기술에 대한 자세한 소개/gif "access plus 1 months" ExpiresByType 웹사이트를 날게 만드는 브라우저 캐싱 기술에 대한 자세한 소개/jpeg "access plus 1 months" ExpiresByType 웹사이트를 날게 만드는 브라우저 캐싱 기술에 대한 자세한 소개/jpg "access plus 1 months" ExpiresByType 웹사이트를 날게 만드는 브라우저 캐싱 기술에 대한 자세한 소개/png "access plus 1 months" EXpiresByType application/x-shockwave-flash "access plus 1 months" EXpiresByType application/x-javascript "access plus 1 months" #ExpiresByType video/x-flv "access plus 1 months" </IfModule>
설명: 첫 번째 문장 - 서비스 시작
두 번째 문장 - 기본 시간은 한 달입니다
다음은 다양한 유형의 리소스에 대한 캐시 시간 설정입니다
추천 학습: php 비디오 튜토리얼
위 내용은 웹사이트를 날게 만드는 브라우저 캐싱 기술에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!