인프런 강의를 확인하려고 주소로 접속하던 중 오류가 났고 우연히 상태코드를 보게 되었다.
HTTP 상태코드에서,
300
번 대는 리다이렉션
상태코드로 알려져 있고, 그 중에서도 304
는 단시간에 반복된 동일 요청에 대한 대응 코드이다.
400
번 대는 클라이언트의 잘못된 요청에 대한 상태코드이며, 그 중 404
는 Not Found
, 다시 말해 요청한 경로에 대한 리소스가 존재하지 않을 때 사용된다.
따라서, 위 이미지에서 잘못된 요청에 대해 동일한 상태 코드가 나올 것이라 예상했다.
하지만, 인프런은 304
코드를 사용하고 있고 그 이유가 궁금했다.
추가로 헷갈렸던 HTTP 상태코드에 대해 정확히 짚고 넘어가고 싶었다.
질문
답변대로 캐시를 삭제하고 새로고침을 하면 200
상태코드를 받을 수 있다.
200
상태코드에서 새로고침하고 수정된 것이 없으므로 캐시된 리소스로 응답하면서 304
상태코드가 된다.
이로써 호기심이 증폭되었다. 왜!!! 해당 경로에 리소스가 존재하지 않는데 200
으로 처리할까?
질문
토리님 답변 감사합니다.
응답해주신 내용대로 캐시 삭제 후 200상태코드 확인할 수 있었습니다.
덕분에 리소스 캐싱이 될 때 304가 사용되는 것도 정확히 알게 되었습니다.
답변에서 궁금한 점은 리소스가 존재하지 않는 경로, 다시 말해 Not Found에서 200 상태코드가 사용되는 것은 무슨 이유인가요?
여기서도 마찬가지,, bad gateway error는 502
라고 배웠지만 leetcode는 어떤 이유에서인지 503
을 사용하고 있다.
사용자 입장에서 보자면 보통은 접속이 폭주하는 등의 원인으로 서버에서 어떤 이유로 통신장애가 발생하였을 경우에 저런 문제가 발생하는 것이 대부분이며 간혹 사용자 브라우저에 이상이 있거나 잘못된 네트워크 연결 혹은 설정 등을 했을 때도 저런 문제가 드물게 발생할 수도 있다.
--쓰기 진행 중인 글--
22.08.16 글 추가