반응형
HTTP 상태코드를 공부하던 중, 내 포트폴리오 사이트의 상태코드를 확인해보니 304가 뜨는 것을 확인했다. 왜 200번대의 성공 상태코드가 아닌 300번대의 리다이렉션 상태코드가 뜬 것일까?
304 not modified란 요청한 자원이 변경되지 않았으므로 클라이언트에서 캐시*된 자원을 사용하도록 권하는 상태코드다. 간단히 말하면 서버에서 요청된 자원을 재전송할 필요가 없음을 나타내는 것이다. 클라이언트가 캐시된 자원을 사용하게 하게 되면 연결을 통해 다시 전체 자원을 전송하는 것보다 효율적이다.
💡 HTTP는 성공(200번대)인 경우라도 요청의 결과가 변경될 수 있는 조건부 요청(conditional requests)을 갖고 있다. 이런 요청으로 캐시의 내용과 쓸데없는 제어를 검증 및 제한하고 다운로드를 이어서 하거나 서버에 문서를 업로드 하거나 수정할 때 문서의 무결성을 확인하는 데 유용하다. 참고로, 대부분의 브라우저는 이 요청을 사용하여 자동 캐시 기능을 지원한다.
결국 우리 브라우저는
- 요청하는 자원이 이미 캐시되어 있어 캐시한 자원을 보내줄게.
- 서버야 이 자원이 변경 되었는지 확인 해줄래? (조건부 요청)
- 서버 : 자원을 성공적으로 받았어! 확인 해볼게.
- 서버 : 자원이 변경되지 않았어. 캐시된 자원을 사용해. (304 not modified)
이렇게 혼자 알아서 잘 해주고 있었는데 나 혼자 의문을 품고 있었던 것이었다. 😅
브라우저 캐시* - 가장 최근에 다운로드된 웹 페이지(문서)들을 저장하는 디스크나 메모리의 임시 저장 구역. 웹에서 페이지를 링크할 때 이 페이지를 메모리에 캐시하면 한 페이지로 돌아갈 때마다 그 페이지를 웹에서 다시 다운로드하지 않아도 된다. - 네이버 지식백과
반응형
'Web' 카테고리의 다른 글
CSR과 SSR 이해하기 (2) | 2021.10.15 |
---|---|
HTTP 이해하기 (0) | 2021.09.13 |
포스트맨(Postman) 사용법과 다운로드(feat. 유튜브 API) (0) | 2021.08.08 |
크롬 브라우저는 어떻게 작동 할까? - 04 (0) | 2021.08.08 |
크롬 브라우저는 어떻게 작동 할까? - 03 (0) | 2021.07.29 |