클라이언트가 HTTP 메서드로 요청을 보낼 경우에 서버 쪽에서는 그에 대한 처리 상태에 대한 응답을 각각의 코드에 맞게 돌려준다.
- 1xx(Informational) : 요청이 수신되어 처리 중
- 2xx(Successful) : 요청 정상 처리
- 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요
- 4xx(Clent Error) : 클라이언트 오류
- 5xx(Server Error) : 서버 오류
그럼 각각의 상태코드에 대해 자세히 알아보자
1xx(Informational)
거의 사용하지 않는다.
2xx(Successful)
- 200 : OK, 요청 성공
- 201 : Created, 요청 성공해서 새로운 리소스 생성 -> 생성된 리소스는 응답의 Location 헤더 필드로 식별
- 202 : Accepted, 요청은 접수되었지만 처리가 완료되지 않음 -> 배치 처리 같은 곳에서 사용
- 204 : No Content, 서버가 요청을 성공적으로 수행했지만 응답 페이로드 본문에 보낼 데이터가 없음
3xx(Redirection)
- 영구 리다이렉션
- 리소스의 URI가 영구적으로 이동
- 301 : Moved Permanently, 리다이렉트 시 요청 메서드가 GET으로 변하고 본문이 제거될 수 있음
- 308 : Permanent Redirect, 리다이렉트 시 요청 메서드와 본문 유지(처음에 POST를 보내면 리다이렉트도 POST 유지)
- 일시 리다이렉션
- 리소스의 URI가 일시적으로 변경
- 302 : Found, 리다이렉트 시 요청 메서드가 GET으로 변하고 본문이 제거될 수 있음
- 307 : Temporary Redirect, 리다이렉트 시 요청 메서드와 본문 유지
- 303 : See Other, 리다이렉트 시 요청 메서드가 GET으로 변경
- 기타 리다이렉션
- 300 : Multiple Choices, 잘 사용하지 않음
- 304 : Not Modified, 클라이언트에게 리소스가 수정되지 않았음을 알려준다.
4xx(Client Error)
- 400 : Bad Request, 클라이언트가 잘못된 요청을 해서 서버가 처리할 수 없음
- 401 : Unauthorized, 클라이언트가 해당 리소스에 대한 인증이 필요함
- 403 : Forbidden, 서버가 요청을 이해했지만 승인을 거부함
- 404 : Not Found, 요청 리소스가 서버에 없음
5xx(Server Error)
- 500 : Internal Server Error, 서버 내부 문제로 오류 발생
- 503 : Service Unavailable, 서비스 이용 불가
이처럼 HTTP 상태코드에는 여러 가지가 있으며, 상태코드를 하나하나 알지 못하더라도 상태코드의 제일 앞자리 숫자를 통해 상태코드가 어떤 것을 의미하는지 대략적으로는 파악이 가능하다.
출처 : 인프런 우아한 형제들 최연소 기술이사 김영한의 스프링 완전 정복(모든 개발자를 위한 HTTP 웹 기본 지식)
'기타' 카테고리의 다른 글
[HTTP]HTTP 메서드 (0) | 2023.04.07 |
---|---|
[HTTP]HTTP의 정의, 특징 및 메시지의 구조 (0) | 2023.04.01 |
[HTTP]URI URL URN (0) | 2023.04.01 |
[Lombok] IntelliJ Lombok 설치, 설정 (0) | 2023.03.26 |