이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 11711|회답: 0

[웹사이트 운영] 웹사이트 성능 최적화: 캐시 제어 설정에 대한 상세한 설명

[링크 복사]
게시됨 2015. 9. 7. 오후 7:30:51 | | | |


HTTP 헤더 만료 및 캐시 제어


1. 개념

캐시 제어는 HTTP 캐싱을 제어하는 데 사용됩니다(HTTP/1.0에서는 부분적으로 구현되지 않을 수 있으며, Pragma에서만 구현되어 있습니다: 노캐시가 구현됨)

패킷 내 형식:

Cache-Control: cache-directive

캐시 지시는 다음과 같을 수 있습니다:

요청:
| "캐시 없음"
| "노-스토어"
| "최대 연령" "=" 델타초
| "맥스-스테일" [ "=" 델타초 ]
| "최소 신선" "=" 델타초
| "변신 금지"
| "만-캐시"
| "캐시 확장"


답변:
| "공공"
| "개인" [ "=" <"> 필드 이름 <"> ]
| "노캐시" [ "=" <"> 필드 이름 <"> ]
| "노-스토어"
| "변신 금지"
| "반드시 재검증해야 한다"
| "프록시 재검증"
| "최대 연령" "=" 델타초
| "S-맥세지" "=" 델타초
| "캐시 확장"

설명의 일부:
캐시 가능 여부로 나누어
공개는 응답이 어떤 캐시 영역에서도 캐시될 수 있음을 나타냅니다.
Private는 단일 사용자의 응답 메시지 전부 또는 일부가 공유 캐시에서 처리될 수 없음을 의미합니다. 이 기능은 사용자가
부분 응답 메시지로, 다른 사용자의 요청에는 유효하지 않습니다.
노캐시는 요청 또는 응답 메시지가 캐시될 수 없음을 나타냅니다(HTTP/1.0은 Pragma의 노캐시로 대체됨)
캐시할 수 있는 범위에 따라
스토어 없음은 중요한 정보가 의도치 않게 게시되는 것을 방지하기 위해 사용됩니다. 요청 메시지를 보내면 요청과 응답 메시지가 캐시가 되지 않게 됩니다.
캐시에 따른 타임아웃
max-age는 클라이언트가 지정된 시간(초 단위)을 초과하지 않는 응답을 받을 수 있음을 나타냅니다.
min-fresh는 클라이언트가 현재 시간보다 짧은 응답 시간과 지정된 시간을 더한 응답을 받을 수 있음을 나타냅니다.
max-stale은 클라이언트가 타임아웃 기간을 넘어서도 응답 메시지를 받을 수 있음을 나타냅니다. 최대 오래된 메시지의 값을 지정하면, 클라이언트는
초과 근무 기간의 지정된 값을 초과하는 응답 메시지를 수신합니다.
만료는 존재 시간을 나타내며, 클라이언트가 이 시간 이전에 확인(요청을 하지 않아도 됨)을 허용하며, 이는 최대 연령과 동일합니다
효과. 하지만 동시에 존재한다면, 캐시-컨트롤의 최대 연령에 의해 덮어쓰여집니다.
판:
Expires = "Expires" ": HTTP-date
예를 들어
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)

2. 적용
만료 설정과 HTTP 기반 META를 통한 캐시 제어
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta http-equiv="Expires" content="2009년 7월 20일 월요일 23:00:00 GMT" />
위 설정들은 단지 예시일 뿐이며, 실제로 그 중 하나를 사용할 수 있습니다. 이렇게 작성하면 웹페이지에만 유효하며, 웹페이지의 이미지나 다른 요청에는 해당되지 않으며 캐시도 실행하지 않습니다.
이렇게 하면 클라이언트가 더 많은 요청을 받게 되고, 최종 수정 상태를 확인하는 것이긴 하지만, 요청 수가 분명히 브라우징 속도에 영향을 미칩니다.
파일에 캐시를 추가하고 싶다면, Apache의 mod_expire 모듈을 사용할 수 있습니다. 이 모듈은 다음과 같이 작성되어 있습니다
<만약 모듈 mod_expires.c>
만료 활성화 중
만료 기본값 "접근 권한 플러스 1일"
</IfModule>
ExpiresActive가 켜져 있는 걸 기억하는데, 처음에는 켜지 않았고, 아무리 YSlow를 해도 캐싱 메커니즘을 찾을 수가 없는 것 같아요. 이렇게 추가하면 기본값이 모두 표시됩니다.
개별 MIME 유형을 타겟팅하고 싶다면, 다음과 같은 방법이 있습니다:
만료 대상(ExpiresByType) 이미지/GIF "접근 권한 5시간 3분"
아파치 모듈 mod_expires 참조
또한 브라우저에서 새로고침을 클릭하면 클라이언트가 보내는 모든 요청이 max-age=0으로 표시되어 요청이 검증되어 서버로 전송되었음을 나타냅니다
캐시를 확인한 후 캐시를 업데이트하려 하면 일반적으로 304 '수정되지 않음'이 나오는데, 이는 변경 사항이 없다는 뜻입니다.






이전의:아르바이트를 찾아 추가 수입을 벌기 우수한 대우와 현금 지급, 하루 300 이상 파트타임 근로자를 채용하세요
다음:Linq에서 SQL로 퍼지 쿼리를 만드는 것과 비슷합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com