상태코드는 서버로부터 리퀘스트 결과를 전달한다.
클라이언트가 서버를 향해 리퀘스트를 보낼 때 서버에서 그 결과가 어떻게 되었는지 알려주는 것이 상태 코드의 역할이다.
클래스 | 설명 | |
1xx | Informational | 리퀘스트를 받아들여 처리중 |
2xx | Success | 리퀘스트를 정상적으로 처리했음 |
3xx | Redirection | 리퀘스트를 완료하기 위해서 추가 동작이 필요 |
4xx | Client Error | 서버는 리퀘스트 이해 불가능 |
5xx | Server Error | 서버는 리퀘스트 처리 실패 |
대표적인 14개의 상태코드
2xx 성공(Success)
- 200 OK : 클라이언트가 보낸 리퀘스트를 서버가 정상 처리하였음을 나타낸다.
- 204 No Content : 이 리스폰스는 서버가 리퀘스트를 받아서 처리하는 데는 성공했지만 리스폰스에 엔티티 바디를 포함하지 않는다. 클라이언트에서 서버에 정보를 보내는 것으로 족하고, 클라이언트에 대해서 새로운 정보를 보낼 필요가 없는 경우에 사용한다.
- 206 Partial Content : 이 리스폰스는 Range에 의해서 범위가 지정된 리퀘스트에 의해서 서버가 부분적 GET 리퀘스트를 받았음을 나타낸다.
3xx 리다이렉트(Redirection)
- 301 Moved Permanently : 이 리스폰스는 리퀘스트된 리소스에는 새로운 URI가 부여되어 있기 때문에, 이후로는 그 리소스를 참조하는 URI를 사용해야 한다는 것을 나타내고 있다.
- 302 Found : 이 리스폰스는 리퀘스트된 리소스에는 새로운 URI가 할당되어 있기 때문에, 그 URI를 참조해 주길 바란다는 의미를 나타낸다. 301과 비슷하지만 302는 영구적인 이동이 아닌 어디까지나 일시적인 것이다.
- 303 See Other : 이 리스폰스는 리퀘스트에 대한 리소스는 다른 URI에 있기 때문에 GET 메소드를 사용해서 얻어야 한다는 것을 나타낸다. 302와 같은 기능이지만, 리다이렉트 장소를 GET 메소드로 얻어야 한다고 명확하게 되어 있는 점이 302와 다르다.
- 304 Not Modified : 이 리스폰스는 클라이언트가 조건부 리퀘스트를 했을 때 리소스에 대한 엑세스는 허락하지만, 조건이 충족되지 않음을 표시한다.
- 307 Temporary Redirect : 이 리스폰스는 302와 같은 의미를 지니지만, 307에서는 브라우저 사양에 따라 POST에서 GET으로 치환을 하지 않는다.
4xx 클라이언트 에러(Client error)
- 400 Bad Request : 이 리스폰스는 리퀘스트 구문이 잘못되었음을 나타낸다.
- 401 Unauthorized : 이 리스폰스는 송신한 리퀘스트에 HTTP 인증정보가 필요하다는 것을 나타낸다. 이미 1번 리퀘스트가 이루어진 경우에는 유저 인증에 실패했음을 표시한다.
- 403 Forbidden : 이 리스폰스는 리퀘스트된 리소스의 액세스가 거부되었음을 나타내고 있다. 서버 측은 거부의 이유를 분명히 할 필요가 있는데, 이유를 명확하게 하는 경우에는 엔티티 바디에 기재해서 유저 측에 표시한다.
- 404 Not Found : 이 리스폰스는 리퀘스트한 리소스가 서버상에 없다는 것을 나타낸다.
5xx 서버 에러(Server Error)
- 500 Internal Server Error : 이 리스폰스는 서버에서 리퀘스트를 처리하는 도중에 에러가 발생했음을 나타낸다.
- 503 Service Unavaliable : 이 리스폰스는 일시적으로 서버가 과부하 상태이거나 점검중이기 때문에 현재 리퀘스트를 처리할 수 없음을 나타낸다.
상태 코드가 현재 상황과 불일치 할 수도 있다.
리스폰스로 되돌아오는 상태 코드의 대부분은 유저가 다른 내용을 알기 어렵게 되어 있다.
흔히 있는 상황으로 웹 애플리케이션에서 애플리케이션 에러가 발생한 경우에도 상태 코드로는 [200 OK]가 되돌아오는 경우가 있다.
참고 : 그림으로 배우는 Http & Network Basic
'CS > Network' 카테고리의 다른 글
제 6장 HTTP 헤더 (0) | 2023.08.27 |
---|---|
제 5장 HTTP와 연계하는 웹 서버 (0) | 2023.04.16 |
제 3장 HTTP 정보는 HTTP 메세지에 있다. (0) | 2023.03.27 |
제 2장 간단한 프로토콜 HTTP (0) | 2023.03.27 |
제 1장 웹과 네트워크의 기본 (2) | 2023.03.23 |