Coderoad

HTTP 상태코드

2023-01-18 at HTTP category

본 문서는 인프런에서 수강할 수 있는 모든 개발자를 위한 HTTP 웹 기본 지식을 수강한 후, 공부한 내용을 정리한 문서입니다. 본 문서의 모든 저작권은 해당 강의의 저자이신 김영한 우아한형제들 기술이사님께 있습니다.

HTTP 상태코드

클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능. 클라이언트에서는 상위 상태코드로 상태를 해석한다. (2XX이면 성공!)

2XX - Successful

  • 200 OK 요청 성공

  • 201 Created 요청 성공으로 새로운 리소스 생성

  • 202 Accepted 요청 접수되었으나 처리 미완 (배치 처리)

  • 204 No Content 요청 성공적으로 수행, 그러나 응답 메시지로 보낼 데이터 없음 (게시글 Save 버튼)

3XX - Redirection

영구 리다이렉션

리소스의 URI가 영구적으로 변경. 원래의 URL 사용하지 않음. 검색 엔진에서도 변경해야함.

  • 301 Moved Permanently 리다이렉트 시 요청 메소드가 GET으로 변하고, 본문(메시지 바디)이 제거될 수도 있음.

  • 308 Permanent Redirect 리다이렉트 시 요청 메소드와 본문을 유지(첫 요청과 동일하게 유지).

일시적 리다이렉션

리소스의 URI가 일시적으로 변경. 검색 엔진에서 절대 변경되면 안됨.

  • 302 Found 리다이렉트 시 요청 메소드가 GET으로 변하고, 본문이 제거될 수도 있음.

  • 307 Temporary Redirect 리다이렉트 시 요청 메소드와 본문 유지(절대 요청 메소드를 변경하면 안된다).

  • 303 See Other 리다이렉트 시 요청 메소드가 GET으로 변경

  • 304 Not Modified 캐시를 목적으로 사용. 클라이언트에게 리소스가 수정되지 않았음을 알림(캐시 사용 허가).

PRG : POST/Redirect/GET

POST로 요청 후에 새로 고침으로 인한 중복 요청 방지. POST 후에 결과 화면(응답)을 GET 메소드로 리다이렉트.

4XX - Client Error

오류의 원인이 클라이언트에 있어 서버가 전혀 요청을 수행할 수 없음. 같은 요청을 다시 보내도 서버에선 계속 같은 실패 응답을 보냄.

  • 400 Bad Request 클라이언트가 잘못된 요청을 보냄. 클라이언트가 요청 내용을 검토해야함. HTTP API 스펙이 맞지 않거나, 요청 파라미터가 잘못됨.

  • 401 Unauthorized 클라이언트가 접근하려는 리소스에 대한 인증 필요. Authentication되지 않음. WWW-Authenticate 헤더와 함께 인증 방법 설명 Authentication (본인 인증), Authorization (권한 확인)

  • 403 Forbidden 서버가 클라이언트의 요청을 이해했지만 승인 거부. 권한 부족. (일반 사용자가 어드민 리소스 접근)

  • 404 Not Found 요청 리소스가 서버에 없음. 또는 클라이언트에게 완전히 리소스의 존재 확인을 막을 때.

5XX - Server Error

서버 문제로 오류 발생. 재시도 시 성공 가능성 있음. 서버의 문제일 때만 5XX대 오류 반환해야함.

  • 500 Internal Server Error 서버 문제로 오류 발생, 애매하면 500.

  • 503 Service Unavailable 서비스 이용 불가. 서버가 일시적인 과부하 또는 예정 작업으로 요청 처리 불가. Retry-After 헤더 필드로 복구 예상 시간 반환 가능.

hangillee

Personal blog by hangillee.

Road to good developer.