1xx (Informational) - 요청이 수신되어서 처리 중인 상태
2xx (Successful) - 요청이 정상 처리된 상태
200 OK
HTTP/1.1 200 OK
Content-Type: appplication/json
Content-Length: 34
{
"username":"GG_BB",
"age":20
}
201 Created
HTTP/1.1 201 OK
Content-Type: appplication/json
Content-Length: 34
**Location: /memebers/100**
{
"username":"GG_BB",
"age":20
}
202 Accepted
204 No Content
3xx (Redirection) - 요청을 완료하려면 추가적인 행동이 필요한 상태
[리다이렉션이란?]
GET /event HTTP/1.1
Host: localhost:8080
HTTP/1.1 301 Moved Permanently
Location: /new-event
GET /new-event HTTP/1.1
Host: localhost:8080
HTTP/1.1 200 OK
그렇게 되어 위와같은 응답을 받을 수 있게 된다.
종류로는 다음과 같다.
영구 리다이렉션 - 특정 리소스의 URI가 영구적으로 이동하였을 때
원래의 URI를 사용하지 않고, 검색 엔진 등에서도 이 변경을 인지한다.
종류로는 다음과 같다.
301 Moved Permanently
POST /event HTTP/1.1
Host: localhost:8080
name=hello&age=20
HTTP/1.1 301 Moved Permanently
Location: /new-event
GET /new-event HTTP/1.1
Host: localhost:8080
308 Permanent Redirect
POST /event HTTP/1.1
Host: localhost:8080
name=GG_BB&age=20
HTTP/1.1 308 Permanent Redirect
Location: /new-event
POST /new-event HTTP/1.1
Host: localhost:8080
name=GG_BB&age=20
페이지가 바뀔 때 요청되는 입력 폼도 달라질 가능성이 크기 때문에 주로 301이 사용된다.
일시 리다이렉션 - 일시적인 변경으로 인해 이동 시킬 때
Post를 통해서 요청을 하고 웹 브라우저를 새로고침하게 된다면 중복으로 요청이 보내질 수도 있게된다.
⇒ 이를 해결하기위해 PRG를 사용하게된다.
PRG (Post/Redirect/Get)
POST /order HTTP/1.1
Host: localhost:80
itemId=mouse&count=1
HTTP/1.1 302 Found
Location: /order-result/19
GET /order-result HTTP/1.1
Host: localhost:8080
특수 리다이렉션 - 결과 대신 캐시를 사용할 때
이외에도 300 Multiple Choices가 있지만 잘 사용하지는 않는다.
4xx (Client Error) - 클라이언트에 의한 오류, 잘못된 문법 등으로 인해서 서버가 요청을 수행 할 수 없는 상태
5xx (Server Error) - 서버에 의한 오류, 서버가 정상 요청을 처리하지 못하는 상태
<aside> 💡 만약 인식할 수 없는 상태코드가 나타나면?
</aside>