F5 및 Ctrl+F5이 실행되는 작업에 대한 표준이 있나요?
IE6과 Firefox 2.x에서 실험을 해봤습니다. F5 새로 고침은 If-Modified-Since
헤더가 포함된 서버에 대한 HTTP 요청을 트리거하지만 Ctrl+F5에는 이러한 헤더가 없습니다. 제가 이해한 바에 따르면 F5는 캐시된 콘텐츠를 최대한 많이 활용하려고 하는 반면, Ctrl+F5은 캐시된 콘텐츠를 모두 삭제하고 서버에서 모든 내용을 다시 검색하는 것을 목표로 합니다.
하지만 오늘 일부 최신 브라우저(Chrome, IE8)에서는 더 이상 이런 방식으로 작동하지 않는 것을 확인했습니다. F5 및 Ctrl+F5은 모두 If-Modified-Since
헤더를 보냅니다.
그렇다면 이것이 어떻게 작동해야 할까요? 아니면 (표준이 없다면) 이러한 새로 고침 기능을 구현하는 방식에서 주요 브라우저가 어떻게 다릅니까?
브라우저에 따라 다르지만 비슷한 방식으로 작동합니다.
F5 일반적으로 페이지가 수정된 경우에만 페이지를 업데이트합니다. 최신 브라우저는
Cache-Control: max-age=0
를 보내 캐시된 리소스가 최신 상태로 간주되는 최대 시간(요청 시간 기준)을 알려줍니다.CTRL-F5은 캐시를 무시하고 강제로 업데이트하는 데 사용됩니다. 최신 브라우저는
을 보냅니다.Cache-Control: no-cache
和Pragma: No-cache
제 기억이 맞다면 Netscape는 CTRL -
으아악Pragma: No-cache
F5를 누를 때 를 추가하여 캐시 제어 지원을 추가한 최초의 브라우저였습니다.Chrome 6.0.472에 대한 참고 사항: 강제 다시 로드(예: CTRL-F5)를 수행하면 URL이 내부적으로 항상 강제 다시 로드로 표시된 것처럼 작동합니다. 주소 표시줄로 가서 Enter 키를 누르면 플래그가 지워집니다.
일반적인 말:
콘텐츠가 변경되더라도F5는 캐시에서 페이지를 로드할 수 있으므로 동일한 페이지를 제공할 수 있습니다. 하지만 Ctrl+F5을 누르면 캐시 새로 고침이 강제 실행되고 변경되는 경우 새 콘텐츠를 얻을 수 있습니다.