HTTP 상태코드

Jongwon·2022년 7월 20일
0

Http 기본개념

목록 보기
5/7

아래 내용은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 통해 배운 내용을 정리한 것입니다.

Status 200

Success, 요청이 정상적으로 처리되었음을 의미하는 상태입니다.

  • 200 : 요청이 성공적으로 처리된 경우 전송
  • 201 : 신규 리소스가 생성된 경우 전송(POST로 리소스가 생성된 경우)
  • 202 : 요청이 잘 접수되었지만, 처리가 아직 되지 않은 경우 전송
  • 204 : 요청이 성공적으로 처리되었는데 본문에 보낼 데이터가 없는 경우 전송(save 버튼 등)

Status 300

Redirection이나 요청이 완료되기 위해 추가적인 행동이 필요함을 의미하는 상태입니다.
Location 헤더 필드가 있다면 해당 URI로 자동으로 redirection합니다.

  • 301 : 요청한 리소스의 URI가 영구적으로 변경된 경우 전송

    Status 301과 같은 경우 POST로 요청을 했어도 GET으로 Redirection이 되고 본문이 제거될 수 있습니다.
    중요한 점은 대부분 바뀌지만 바꾸지 않을 수도 있다는 것입니다.

  • 302 : 요청한 리소스의 URI가 일시적으로 변경된 경우 전송(301과 비슷합니다, 대부분 302사용)
  • 303 : 요청한 리소스의 URI가 일시적으로 변경된 경우 요청 메서드를 GET으로 바꾸고 전송(거의 사용되지 않음)
  • 304 : 클라이언트에게 리소스가 수정되지 않았다는 것을 알려주어 캐쉬를 재사용하도록 유도할 때 전송

    302와 같은 경우는 메서드가 바뀌지 않을 수도 있지만, 303은 무조건 요청 메서드를 GET으로 바꾸고 본문을 제거하여 Redirection합니다.

  • 307 : 요청한 리소스의 URI가 일시적으로 변경되었을 때 요청 메서드와 본문을 유지하는 경우 전송
  • 308 : 요청한 리소스의 URI가 영구적으로 변경된 경우 전송(307과 비슷합니다)

Status 400

Client-Side Error, 클라이언트의 요청 오류로 서버가 해당 요청을 수행할 수 없음을 의미하는 상태입니다.
이 상태는 복구가 불가능한 오류입니다. 잘못된 요청이기 때문입니다.

  • 400 : 요청 자체에 문제가 있는 경우 전송
  • 401 : 인증이 필요한 경우 전송(인증이 되지 않은 경우)
  • 403 : 인증은 되었지만 접근 권한이 불충분한 경우 전송(관리자 권한에 접근하려는 등)
  • 404 : 요청 리소스를 찾을 수 없거나 권한이 부족한 경우 전송

Status 500

Server-Side Error, 데이터베이스 중단 등 서버의 오류로 요청을 처리할 수 없음을 의미하는 상태입니다.
400에러와 다른 점은 서버 사이드에서 에러가 복구되는 경우 정상적으로 실행될 수 있다는 것입니다.

  • 500 : 서버 내부의 오류인 경우 전송
  • 503 : 서버 과부하나 예정된 작업이 있는 경우 전송
profile
Backend Engineer

0개의 댓글