[네트워크] HTTP 상태코드

JourniYoon·2022년 8월 13일
0

네트워크

목록 보기
1/3

인프런 강의를 확인하려고 주소로 접속하던 중 오류가 났고 우연히 상태코드를 보게 되었다.

해당 화면은 (좌) inflearn.com/course (우) Google.com/course 로 접속한 화면이다.

궁금한 점

HTTP 상태코드에서,
300번 대는 리다이렉션상태코드로 알려져 있고, 그 중에서도 304는 단시간에 반복된 동일 요청에 대한 대응 코드이다.
400번 대는 클라이언트의 잘못된 요청에 대한 상태코드이며, 그 중 404Not Found, 다시 말해 요청한 경로에 대한 리소스가 존재하지 않을 때 사용된다.
따라서, 위 이미지에서 잘못된 요청에 대해 동일한 상태 코드가 나올 것이라 예상했다.
하지만, 인프런은 304코드를 사용하고 있고 그 이유가 궁금했다.
추가로 헷갈렸던 HTTP 상태코드에 대해 정확히 짚고 넘어가고 싶었다.

인프런 질문 & 답변

모바일 텍스트 배려

질문

  • Chrome Version 103.0.5060.114 (Official Build) (64-bit)
  • PC (Linux)
  • <'찾을 수 없는 페이지' 상태코드가 304인 이유가 궁금합니다.>
    웹 개발 공부를 하고 있어 궁금한 사항이라 문의드립니다.
    최근 인프런에 url 입력으로 접속하려던 중 '찾을 수 없는 페이지'를 만나게 되었습니다. 개발자 도구의 '네트워크'탭을 확인하니 상태코드가 304인 것을 확인하게 되었습니다. 보통 리소스가 없는 요청의 경우에 404(Not Found) 상태코드를 사용한다고 배웠는데 인프런에서 304를 사용하는 이유가 궁금했습니다. 혹시 특별한 이유가 있나요?
    위와 같이 인프런 문의하기에 궁금한 사항을 남겼고 토리님께 위와 같이 답변을 받았다.
    답변
    해당 상태코드가 304인 이유는 브라우저의 리소스 캐싱과 관련이 있습니다. 이미 한번 요청된 페이지이기 때문에 캐시된 리소스를 응답하게되고 304 Not modified를 응답하게 되는 것으로 예상됩니다.
    크롬 브라우저를 사용하시는 경우 새로고침 아이콘 위에서 마우스 우측버튼 클릭시 캐시 비우기 및 강력 새로고침을 할 수 있으며, 200 상태코드를 확인하실 수 있습니다.

확인 & 재질문

답변대로 캐시를 삭제하고 새로고침을 하면 200 상태코드를 받을 수 있다.

200상태코드에서 새로고침하고 수정된 것이 없으므로 캐시된 리소스로 응답하면서 304 상태코드가 된다.

이로써 호기심이 증폭되었다. 왜!!! 해당 경로에 리소스가 존재하지 않는데 200으로 처리할까?

모바일 텍스트 배려

질문
토리님 답변 감사합니다.
응답해주신 내용대로 캐시 삭제 후 200상태코드 확인할 수 있었습니다.
덕분에 리소스 캐싱이 될 때 304가 사용되는 것도 정확히 알게 되었습니다.
답변에서 궁금한 점은 리소스가 존재하지 않는 경로, 다시 말해 Not Found에서 200 상태코드가 사용되는 것은 무슨 이유인가요?


또 다른 상태코드


여기서도 마찬가지,, bad gateway error는 502 라고 배웠지만 leetcode는 어떤 이유에서인지 503을 사용하고 있다.
사용자 입장에서 보자면 보통은 접속이 폭주하는 등의 원인으로 서버에서 어떤 이유로 통신장애가 발생하였을 경우에 저런 문제가 발생하는 것이 대부분이며 간혹 사용자 브라우저에 이상이 있거나 잘못된 네트워크 연결 혹은 설정 등을 했을 때도 저런 문제가 드물게 발생할 수도 있다.

--쓰기 진행 중인 글--
22.08.16 글 추가

0개의 댓글