많은 사람들이 먼저 서버 캐시 측면에서 프로그램을 최적화하기를 원합니다. 다양한 서버 캐시 방법에는 고유한 특성이 있습니다. 예를 들어 제가 참여한 일부 프로젝트에서는 캐시 적중률을 기반으로 Com/Enterprise Libiary Caching을 사용했습니다. Windows 서비스, 정적 파일 등에 대한 HTTP 압축 기술이 있지만 서버 캐시로 인해 페이지 액세스 속도가 매우 빨라지더라도 여전히 브라우저 다운로드에 의존해야 합니다. 클라이언트 측 캐싱을 추가하면 사이트에서 가장 자주 액세스하는 페이지를 캐시하고 웹 서버의 처리량(일반적으로 초당 요청 데이터 측면)을 완전히 향상시킬 수 있으므로 많은 이점을 얻을 수 있습니다. 컴퓨팅)을 통해 애플리케이션 성능과 확장성을 향상합니다.
온라인 쇼핑 설문조사에 따르면 대부분의 사람들은 매장에 줄을 설 의향이 있지만 온라인 쇼핑을 할 때는 기다릴 의향이 없는 것으로 나타났습니다. Websense 조사 회사에 따르면 인터넷 사용자 중 무려 70%가 10초 이상 페이지를 읽지 않으려고 합니다. 70% 이상의 사람들이 속도가 너무 느리기 때문에 현재 주문을 취소합니다.
기본 지식
1) "Last-Modified"란 무엇인가요?
브라우저가 처음으로 URL을 요청하면 서버에서 반환 상태는 200이 되며, 콘텐츠는 요청한 리소스입니다. , 그리고 Last-Modified 속성은 이 파일이 서버 측에서 마지막으로 수정된 시간을 표시합니다. 형식은 다음과 유사합니다:
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
클라이언트의 두 번째 요청 이 URL이 입력되면 HTTP 프로토콜 규정에 따라 브라우저는 If-Modified-Since 헤더를 서버로 보내 이 시간 이후에 파일이 수정되었는지 묻습니다.
If-Modified-Since: Fri, 12 May 2006 18: 53:33 GMT
서버측 리소스가 변경되지 않으면 자동으로 빈 내용이 포함된 HTTP 304(Not Changed.) 상태 코드를 반환하므로 저장됩니다. 전송될 데이터의 양. 서버 측 코드가 변경되거나 서버가 다시 시작되면 리소스가 재발행되고 반환은 첫 번째 요청과 유사합니다. 이렇게 하면 리소스가 클라이언트에 반복적으로 전송되지 않고 서버가 변경될 때 클라이언트가 최신 리소스를 얻을 수 있습니다.
2) "Etag"란 무엇입니까?
HTTP 프로토콜 사양에서는 ETag를 "요청된 변수의 엔터티 값"으로 정의합니다(14.19장 참조). 다르게 표현하면 ETag는 웹 리소스와 연결될 수 있는 토큰이라는 것입니다. 일반적인 웹 리소스는 웹 페이지이지만 JSON 또는 XML 문서일 수도 있습니다. 서버는 토큰이 무엇인지, 그 의미를 결정하고 이를 HTTP 응답 헤더로 클라이언트에 전송하는 일을 전적으로 담당합니다. 다음은 서버가 반환하는 형식입니다.
ETag: "50b1c1d4f775c61:df3"
클라이언트의 쿼리 업데이트 형식은 다음과 같습니다.
If-None-Match: W/"50b1c1d4f775c61:df3"
ETag가 변경되지 않은 경우 상태 304가 반환된 다음 반환되지 않습니다. 이는 동일합니다. 최종 수정됨. 저는 주로 중단점 다운로드 중에 유용하도록 Etag를 테스트했습니다.
Last-Modified와 Etags는 어떻게 성능 향상에 도움이 되나요?
똑똑한 개발자는 Last-Modified와 ETags 요청 http 헤더를 함께 사용하여 클라이언트(예: 브라우저)의 캐시를 활용할 수 있습니다. 서버는 Last-Modified/Etag 태그를 먼저 생성하므로 나중에 이를 사용하여 페이지가 수정되었는지 여부를 확인할 수 있습니다. 기본적으로 클라이언트는 이 토큰을 서버에 다시 전달하여 (클라이언트 측) 캐시의 유효성을 검사하도록 서버에 요청합니다.
과정은 다음과 같습니다.
1. 클라이언트가 페이지(A)를 요청합니다.
2. 서버는 페이지 A를 반환하고 A에 Last-Modified/ETag를 추가합니다.
3. 클라이언트는 페이지를 표시하고 Last-Modified/ETag와 함께 페이지를 캐시합니다.
4. 클라이언트는 페이지 A를 다시 요청하고 마지막 요청에서 서버가 반환한 Last-Modified/ETag를 서버에 전달합니다.
5. 서버는 Last-Modified 또는 ETag를 확인하여 마지막 클라이언트 요청 이후 페이지가 수정되지 않았음을 확인하고 응답 304와 빈 응답 본문을 직접 반환합니다.
다음 예에서는 서버측 코드를 사용하여 클라이언트측 캐싱을 작동하는 방법을 설명합니다.
현재 페이지 1/2 12다음 페이지
위의 내용은 h3c 802.1x 클라이언트의 내용을 포함하여 웹 사이트 최적화를 위해 클라이언트 캐시를 사용하는 h3c 802.1x 클라이언트의 원리 분석을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.