REST API 포스팅에서 HTTP 상태 코드에 대해 간략하게 정리했는데 복기하는 마음으로, 조금 더 자세히 알아봤다.

HTTP 상태 코드는 클라이언트가 보낸 요청(request)이 성공적으로 완료되었는지 응답(response)을 통해 알려준다. 이러한 응답은 5개의 그룹으로 나뉘어진다. 상태 코드는 3자리 수로 나타내는데, 가장 앞자리 수가 바로 응답의 종류를 의미한다.
| 상태 | 그룹 | 역할 |
|---|---|---|
1XX |
Informational | 현재 요청까지 처리했다는 임시적인 응답 |
2XX |
Success | 클라이언트의 요청을 성공적으로 처리 |
3XX |
Redirection | 요청을 완료하기 위해 추가적인 동작 필요 |
4XX |
Client Error | 클라이언트의 요청 내용이 잘못된 경우 |
5XX |
Server Error | 서버가 요청을 처리하는 데 실패 |
1XX
100 - Continue
요청의 시작 부분 일부가 받아들여졌으며 클라이언트는 나머지 부분을 계속해서 보내야 한다.
101 - Switching Protocol
말 그대로 클라이언트가 서버에 프로토콜 전환을 요청한 것으로 서버는 승인 중인 상태를 뜻한다.
2XX
200 - Ok
클라이언트가 요청한 작업을 성공적으로 처리한 상태를 뜻한다.
201 - Created
생성 작업을 요청받아 성공적으로 처리한 경우로 POST를 통한 요청이 대표적이다.
204 - No content
요청을 정상적으로 처리했지만 response 바디를 포함하지 않는다. 클라이언트에 새로운 정보를 보낼 필요가 없는 경우 사용된다.
3XX
301 - Moved Permanently
요청한 리소스가 새로운 URI로 이동한 경우이며 response 헤더 Location 에 새로운 URI를 포함해서 전달한다. (영구적인 이동)
302 - Found
301과 동일하나 클라이언트는 향후 요청도 동일한 URI로 해야 한다. (일시적인 이동)
303 - See Other
요청한 리소스가 다른 URI에 있어 리다이렉트 장소를 GET 메소드를 통해 얻어야 한다.
304 - Not Modified
이전의 동일한 요청과 비교하여 변화 없음을 의미하여 캐시를 목적으로 사용된다.
307 - Temporary Redirect
302와 동일하나 HTTP Method 를 변경하면 안된다. 만약 첫 요청에 POST를 사용했다면 그 다음 요청에도 POST를 사용해야 한다.
4XX
400 - Bad Request
클라이언트가 보낸 요청의 구문이 잘못되었음을 의미한다.
401 - Unauthorized
요청한 리소스에 대한 엑세스 권한이 없는 경우에 사용한다.
403 - Forbidden
요청한 리소스에 대한 엑세스가 금지되었음을 의미한다. 401과 비슷하지만 403 요청에는 authorization 헤더가 없다.
404 - Not Found
인터넷에서 굉장히 자주 보는 상태 코드로 지정한 리소스를 서버에서 찾을 수 없을 때 사용한다.
5XX
500 - Internal Server Error
서버에서 요청을 처리하는 중 에러가 발생했다.
501 - Not Implemented
서버가 지원하지 않는 새로운 HTTP Method를 사용하여 요청한 경우를 의미한다.
502 - Bad Gateway
게이트웨이 혹은 프록시 역할을 하는 서버가 그 뒷단 서버로부터 잘못된 응답을 받았다.
503 - Service Unavailable
현재 서버에서 서비스를 제공할 수 없음을 의미한다. 보통 서버의 과부하나 서비스 점검과 같이 일시적인 상태이다.
'Computer Science > 📡 Network' 카테고리의 다른 글
| [네트워크/Network] SSL 통신 과정 (0) | 2021.04.30 |
|---|---|
| [네트워크/Network] RESTful한 API 설계하기 (0) | 2021.01.19 |