질문, 피드백 등 모든 댓글 환영합니다.
HTTP 상태코드
HTTP 상태코드를 이용하여 요청의 처리 결과를 나타냅니다.
거의 사용하지 않음
2xx (Successful) : 요청 정상 처리
- 200 : 요청 성공
- 201 : 요청 성공 + 리소스 생성
- 202 : 요청은 접수 됐으나 처리는 완료되지 않았음
- 204 : 요청을 성공적으로 수행했으나 응답할 데이터가 없음
3xx (Redirection) : 요청을 완료하려먼 추가 행동이 필요
리다이렉트 : 응답 결과에 Location 헤더가 있으면 그 위치로 이동
영구 리다이렉션 : 특정 리소스의 URI가 영구적으로 이동
- 301 : 라다이렉트시 GET으로 변하고 본문이 제거될 수 있음 (거의 GET으로 변함)
- 308 : 메서드와 본문을 유지함 (거의 사용 X)
일시적인 리다이렉션 : URI의 일시적 변경
PRG : POST/Redirect/GET
POST 후 새로 고침으로 인한 중복 요청 방지 ex) 중복 주문
POST로 주문 후 새로고침하면 결과 화면으로 Redirect 후 GET으로 조회
- 302 : 301과 같은 기능
- 303 : 302와 비슷하지만 메서드가 GET으로 변경
- 308 : 메서드와 본문 유지
기타 다리이렉션 :
- 304 : 캐시를 목적으로 사용. 리소스가 수정되지 않았음을 알려줌. 응답에 메시지 바디를 포함하면 안됨
4xx (Client Error) : 클라이언트 오류 -> 잘못된 문법 등으로 서버가 요청 수행 불가. 즉 재시도를 해도 항상 결과는 실패함
- 400 : 잘못된 요청, 클라이언트는 요청 내용을 다시 검토해서 보내야 함. 요청 파라미터가 잘못되거나 API 스펙이 다를 경우 발생
- 401 : 해당 리소스에 대한 인증이 필요 (로그인)
- 403 : 인증 자격 증명은 있지만 접근 권한이 불충분 한 경우
- 404 : 요청 리소스가 서버에 없거나 해당 리소스를 숨기고 싶을 때
5xx (Server Error) : 서버 오류, 서버의 문제로 정상적인 요청을 처리하지 못함. 재시도시 성공할 수도 있음
- 500 : 서버 내부 문제로 오류 발생
- 503 : 서비스가 일시적으로 요청을 처리할 수 없는 상태