자주 쓰이는 HTTP 상태코드
1xx - 요청이 수신되어 처리중이라는 의미를 가지고 있다.
- 100 (Continue) - 클라이언트가 계속해서 요청하거나 이미 요청을 완료한 경우에는 무시해도 되는 응답
- 101 (Switching Protocol) - 클라이언트가 보낸 요청 헤더에 대한 응답에 들어가며 서버에서 프로토콜을 변경할 것을 알려준다.
- 102 (Processing) - 서버가 요청을 수신하여 처리중이지만 제대로된 응답을 줄 수 없음을 알려준다.
2xx - 클라이언트의 요청을 성공적으로 처리했다는 의미를 가지고 있다.
- 200 (OK) - 요청이 성공적으로 처리됨 / HTTP 메소드에 따라 의미가 달라진다.
GET : 리소스를 불러와 메시지 바디에 전송이 완료됨
HEAD : 개체 헤더가 메시지 바디에 있다.
POTS / PUT : 수행 결과에 대한 리소스가 메시지 바디에 전송
TRACE : 메시지 바디는 서버에서 수신한 요청 메세지를 포함
- 201 (Created) - 요청이 성공적으로 처리되었으며 그 결과로 새로은 리소스가 생성됨 일반적으로 POST, PUT 요청 이후에 따라오는 상태코드
- 202 (Accepted) - 요청이 접수되었지만 처리가 완료되지 않음 이 상태코드는 배치 프로세스를 담당하는 곳에 사용하는 상태코드
- 204 (No Content) - 요청이 성공적으로 수행했지만 응답 본문에 보낼 데이터가 없다. 결과 내용이 없어도 204 상태코드 만으로 성공을 인식할 수 있다.
3xx - 요청을 완료하기 위해 유저 에이전트의 추가 조치가 필요하다는 의미를 가지고 있다.
[영구적] - 리소스의 URI가 영구적으로 이동하기 때문에 원래의 URL을 사용하지 않는다. 검색엔진 에서도 변경됨
- 301 (Moved Permanently) - 리다이렉트시 요청 메서드가 GET으로 변하고 본문이 제거될 수 있다.
- 308 (Remanent Redirect) - 301 코드와 기능은 같지만 본문은 유지된다.,
[일시적] - 리소스의 URI가 일시적으로 변경되기 때문에 검색 엔진에서 URL을 변경하면 안됨
- 302 (Found) - 리다이렉트시 요청 메서드가 GET으로 변하고 본문이 제거될 수 있다.
- 307 (Temporary Redirect) - 302와 같지만 본문은 유지된다.
- 303 (See Other) - 302와 같지만 요청 메서드가 GET으로 변경된다.
4xx - 클라이언트의 요청에 잘못된 문법으로 서버가 요청을 처리할 수 없는 상태코드
-
오류의 원인이 클라이언트에게 있음. 이미 클라이언트가 잘못된 요청을 보내고 있기 때문에 재시도를 수행해도 실패한다.
-
400 (Bad Request) - 클라이언트가 잘못된 요청을 하여 서버가 처리할 수 없는 상태코드
-
401 (Unauthorized) - 클라이언트가 해당 리소스에 대한 인증이 필요한 상태코드
-
403 (Forbidden) - 서버가 클라이언트에서 어떠한 요청을 했는지 알고있지만, 요청을 거부하는 상태코드
-
404 (Not Found) - 요청 리소스를 찾을 수 없는 경우에 사용하는 상태코드
5xx - 서버 문제로 오류가 발생 서버에 문제가 있기 때문에 클라이언트의 요청이 실패한 경우 재시도를 수행하면 성공할 수 있다.
- 500 (Internal Server Error) - 서버 내부의 문제로 오류가 발생
- 503 (Service Unavailable) - 서버가 과부하 또는 예정된 작업으로 인해 요청을 처리할 수 없음