해당 강의를 들으며 간단 정리하며 공부한 글입니다.
1xx
2xx
3xx
4xx
5xx
클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? -> 클라이언트는 상위 상태코드로 해석해서 처리
클라이언트의 요청을 성공적으로 처리
200, 201 정도만 사용하는 경우도 많음.
팀 내부적으로 범위를 잡고 사용하는 것이 좋음.
요청을 완료하기 위해 유저 에이전트(주로 웹 브라우저, 클라이언트 프로그램)의 추가 조치 필요
🌟 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동(리다이렉트)
300 Mulitiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
307 Temporary Redirect
308 Permanent Redirect
영구 리다이렉션 - 301, 308
일시 리다이렉션 - 302, 307, 303
리소스의 URI가 일시적으로 변경
따라서 검색 엔진 등에서 URL을 변경하면 안됨
302 Found
307 Temporary Redirect
303 See Other
PRG: Post/Redirect/Get
ex_주문 완료 후 주문 내역 화면으로 이동
PRG 적용 전 새로고침시 POST 요청으로 이미 주문된 건을 다시 주문 요청할 수 있음
-> PRG 적용 후 새로고침해도 결과 화면을 GET으로 조회만 가능
클라이언트의 요청에 잘못된 문법 등으로 서버가 요청을 수행할 수 없음
오류의 원인이 클라이언트에 있음
🌟 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함
400 Bad Request
클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음 -> 서버 개발자가 철저히 validation해서 명확하게 클라이언트 잘못인지 400으로 명시하고 잘 막아줘야 함
401 Unauthorized
클라이언트가 해당 리소스에 대한 인증이 필요함
403 Forbidden
서버가 요청을 이해했지만 승인을 거부함
404 Not Found
요청 리소스를 찾을 수 없음
서버 문제로 오류 발생
서버에 문제가 있기 때문에 재시도하면 성공할 수도 있음(복구가 되거나 등등)
500 Internal Server Error
서버 문제로 오류 발생, 애매하면 500 오류
503 Service Unavailable
서비스 이용 불가
진짜 서버에 문제가 있을 때만 500을 사용해라.