Nginx 200 OK (FROM CACHE) 와 304 NOT MODIFIED

4235 단어 nginx
HTTP 캐 시 기반
협상 캐 시
  • If-Modified-Since/Last-modified: 서버 프로그램 검사 요청 헤더 request header 에 있 는 If-modified-Since 를 마지막 으로 수정 시간 이 같 으 면 (예 를 들 어 정적 파일 의 Modified time 은 셸 ls -l 을 통 해 볼 수 있 음) 304 로 되 돌아 갑 니 다. 그렇지 않 으 면 되 돌아 오 는 헤더 response header 에 추가 last-Modified 하고 데이터 (response body) 를 되 돌려 줍 니 다.
  • If-None-Match/Etag: 서버 프로그램 검사 요청 헤더 request header 에 있 는 if-none-match 의 값 은 현재 파일 의 내용 이 hash 알고리즘 nodejs: cryto.createHash('sha1') 을 통 해 생 성 된 내용 요약 문자 와 비교 되 며, 같 으 면 바로 되 돌아 갑 니 다 304. 그렇지 않 으 면 되 돌아 오 는 헤더 response headeretag 속성 을 현재 내용 요약 문자 로 추가 하고 내용 을 되 돌려 줍 니 다.

  • 강 한 캐 시 (즉 from cache)
  • 설정 Expires (XX 시간 만 료) 또는 Cache-Control(http1.0 ) (XX 시간 경과 후 만 료) 만 료 되 지 않 고 명중 cache 한 경우 from cache 요청 을 하지 않 습 니 다.강 솔 (예 를 들 어 ctrl + r) 은 요청 을 하지만 수정 되 지 않 으 면 304 내용 이 수정 되 지 않 고 변경 되 었 으 면 새로운 내용 으로 돌아 갑 니 다.
  • expires / cache - control 은 강 한 캐 시 이지 만 사용자 가 주동 적 으로 트리거 하 는 리 셋 행 위 는 캐 시 협상 전략 을 사용 합 니 다. 주동 적 으로 트리거 하 는 리 셋 행 위 는 리 셋 단 추 를 누 르 고 오른쪽 단 추 를 누 르 면 리 셋, f5 리 셋, ctrl + f5 리 셋 등 을 포함 합 니 다.
  • 물론 콘 솔 에서 선택 disable cahce 하면 어떻게 든 최신 내용 (304 협상 캐 시, 강 캐 시 모두 무효) 을 요청 합 니 다. 1. 로 컬 에 캐 시 가 있 는 지 확인 하지 않 기 때 문 입 니 다.2. 요청 헤더 정보 (request header) 는 If - Modified - Since 도 없고 If - None - Match 도 없어 서 서버 가 판단 할 수 있 습 니 다.

  • 주소 표시 줄 에 입력 한 주 소 는 Enter 키 를 누 릅 니 다. 이 주소 페이지 요청 (이 url 만) request header 은 모두 가 져 오기 때문에 강 한 캐 시 를 명중 시 키 지 않 습 니 다. (참고: How do I stop Chrome sending Cache - control: max - age = 0 when I hit enter?) 하지만 링크 를 통 해 클릭 한 주 소 는 캐 시 를 명중 시 킵 니 다.
    브 라 우 저의 캐 시 메커니즘 에 대해 간단히 알 고 있 습 니 다.
    4.2. Freshness   4.3. Validation
    
    Freshness
    
    Cache Control Expires   ,       Freshness  ,                  ,          Validation                。
    
       from cache                          ,             。
    
                 ,                              。
    
        
    
                          , HTTP1.0     Expires,Expires            ,                                  。
    
       HTTP 1.1     Cache Control,            ,  max-age  ,   timespan,                            。
    
    Validation
    
    Last-Modified ETag         ,      Validation。                          ,               ,           ,          304 HTTP Code            ,      ,               200,          。
    
        
    
                           , HTTP 1.0     Last-Modified,                  ,                      ,                   ,   Last-Modified       ,                ,              。
    
      HTTP1.1     ETag,        ,      ,           HASH  ,  ETAG  ,      ,     inode+mtime    。
    
         
    
    ETag        ,           ETag。    ,             inode    ,          Web   ,                   ETag,    304200  。       ETag     inode,    mtime,        Last-Modified    。              , ETag            hash   。           CDN  ,        ETag            ,            。
    
      
    
        ,ETag        Freshness  ,Freshness           Cache Control Expires  。

    200 OK 와 304 NOT MODIFIED 에 대해 촉발 시 기 는 어떤 차이 가 있 습 니까?200 OK (from cache) 는 링크 를 직접 클릭 하여 방문 하고 인터넷 주 소 를 입력 하여 리 턴 을 누 르 면 방문 할 수 있 습 니 다.반면 304 Not Modified 는 페이지 를 새로 고 칠 때 터치 하거나 긴 캐 시 를 설 정 했 지만 Entity Tags 가 제거 되 지 않 았 을 때 터치 합 니 다.이것 은 자 료 를 찾 아 보고 얻 은 결론 이다.

    좋은 웹페이지 즐겨찾기