본문 바로가기

STUDY/TIL

HTTP 상태코드

자주 자용되는 코드들만 정리

Http Status Code

Http 상태 코드는 Http 요청이 성공적으로 완료되었는지 여부를 나타낸다.
클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능!
상태 코드는 다섯 가지로 분류할 수 있다.

  • 1xx (Informational)
  • 2xx (Successful)
  • 3xx (Redirection)
  • 4xx (Client Error)
  • 5xx (Server Error)

1xx

요청이 수신되어 처리 중. 거의 사용하지 않음

2xx - 성공

클라이언트의 요청을 성공적으로 처리했을 때 사용

  • 200 OK
  • 201 Created : 요청이 성공해 그 결과 새로운 리소스가 생성됨. 일반적으로 POST혹은 PUT요청 후 발생하는 응답
  • 202 Accepted : 요청이 접수되었으나, 처리가 완료되지 않음
  • 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 ex) 요청에 대한 결과로 내용은 보낼 필요가 없고, 성공의 결과만 보내주면 될 때.

3xx

요청을 완료하기 위해 유저 에이전트(web browser)의 추가 조치가 필요할 때 사용

  • 300 Multiple Choices : 거의 사용하지 않음
  • 301 Moved Permanently : 요청된 리소스의 URL이 영구적으로 변경되었을 때. 새 URL을 제공. 리다이렉트 시 메서드가 GET으로 변하고, 본문이 제거될 수도 있음
  • 302 Found : 요청된 리소스의 URI가 일시적으로 변경되었음을 의미
  • 303 See Other : 리다이렉트시 요청 메서드가 GET으로 변경
  • 304 Not Modified : 캐싱 목적으로 사용. 클라이언트에게 응답이 수정되지 않았음을 알려줌 -> 클라이언트는 가지고있는 캐시를 사용
  • 307 Temporary Redirect : 리다이렉트시 요청 메서드와 본문을 유지함
  • 308 Permanent Redirect : 리다이렉트시 요청 메서드와 본문을 유지..

Redirection

웹 브라우저는 3xx 응답의 결과에 Location헤더가 있으면, 해당 위치로 자동 이동(리다이렉트)한다.

  • 영구 리다이렉션 : 특정 리소스의 URI가 영구적으로 이동
  • 일시 리다이렉션 : 일시적인 변경 ex) 주문 완료 후 주문 내역 화면으로 이동
  • 특수 리다이렉션 : 결과 대신 캐시를 사용 주로 304응답

4xx - Client Error

클라이언트의 요청에 잘못된 문법 등으로 인해 서버가 요청을 수행할 수 없는 경우. 오류의 원인이 클라이언트에게 있는 경우

  • 400 Bad Request : 요청 구문, 메시지 등등 오류. 클라이언트는 요청 내용 재검토 후 재요청해야함
  • 401 Unauthorized : 인증되지 않음. 클라이언트는 자신을 인증해야 함
  • 403 Forbidden : 클라이언트가 콘텐츠에 대한 엑세스 권한이 없을. 클라이언트는 인증된 상태
  • 404 Not Found : 서버가 요청된 리소스를 찾을 수 없음. 403대신 404응답을 보내 리소스 자체의 존재를 숨기는 경우도 있음

5xx - Server Error

  • 500 Internal Server Error : 서버 내부 문제로 오류 발생. 애매하면 500
  • 503 Service Unavailable : 서비스 이용 불가. 서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음

더 많은 코드

'STUDY > TIL' 카테고리의 다른 글

Mock, TestDouble  (0) 2021.06.22
JWT를 어디에 저장할까  (0) 2021.05.26
REST URI 설계  (0) 2021.05.04
Spring WebFlux  (0) 2021.04.29
URI와 URL  (0) 2021.04.28