본문 바로가기

독서/네트워크

HTTP 응답 상태 코드

728x90

HTTP 응답 상태 코드

클라이언트가 HTTP 요청을 보내면 서버는 데이터와 함께 상태 코드로 요청에 대한 정보를 돌려준다.

Information 1xx

100 Continue 지금까지 상태가 괜찮으며 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알림
101 Switching Protocol 클라이언트가 보낸 Upgrade 요청 헤더에 대한 응답에 들어가며 서버에서 프로토콜을 변겨할 것임을 알림

Successful 2xx

이 클래스의 응답 코드는 클라이언트 요청에 대해 수신, 이해, 수락이 성공적이었다고 나타낸다.

200 ok 요청이 성공적으로 되었고, HTTP 메소드에 따라 의미가 달라진다.
GET : 리소스를 불러와서 메시지 바디에 전송
HEAD : 개체 헤더가 메시지 바디에 있음
PUT/POST : 수행 결과에 대한 리소스가 메시지 바디에 전송됨
TRACE : 메시지 바디는 서버에서 수신한 요청 메시지를 포함
201 Created 요청 결과로 새로운 리소스가 생성되었음을 알림, 일반적으로 POST, PUT 요청 이후에 따라온다.
202 Accepted 요청을 수신하였지만, 그에 응하여 행동할 수 없음
203 Non-Authoritative Information 이 응답 코드는 돌려받은 메타 정보 세트가 오리진 서버의 것과 일치하지 않지만 로컬이나 서드 파티 복사본에서 모아졌음을 의미
204 No content 요청에 대해서 보내줄 수 있는 콘텐츠가 없지만, 헤더는 의미있을 수 있음
205 Reset content 이 응답 코드는 요청을 완수한 이후에 사용자 에이전트에게 이 요청을 보낸 문서 뷰를 리셋하라고 알림
206 Partial content 이 응답 코드는 클라이언트에서 복수의 스트림을 분할 다운로드를 하고자 범위 헤더를 전송했기 때문에 사용

Redirection 3xx

이 상태 코드 클래스는 요청을 수행하기 위해 사용자 에이전트가 추가 작업을 수행해야 함을 나타낸다.

300 Multiple choice 요청에 대해서 하나 이상의 응답이 가능. 사용자 에이전트 또는 사용자는 그중에 하나를 반드시 선택해야 한다.
301 Moved Permanently 요청한 리소스의 URI가 변경되었음을 의미
302 Found 요청한 리소스의 URI가 일시적으로 변경되었음을 의미
303 See other 클라이언트가 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때, 서버가 클라이언트에게 직접 보내는 응답
304 Not modified 캐시 목적으로 사용. 클라이언트에게 응답이 수정되지 않았음을 알려주며, 클라이언트는 계속 캐시된 버전을 사용할 수 있음
307 Temporary Redirect 클라이언트가 요청한 리소스가 다른URI에 있으며, 이전 요청과 동일한 메소드를 사용하여 요청해야할 때, 서버가 클라이언트에 이 응답을 직접 보냄
308 Permanent Redirect 요청한 리소스가 HTTP 응답 헤더의 Location에 명시된 영구히 다른 URI에 위치하고 있음을 의미.

Client error 4xx

이 상태 코드 클래스는 클라이언트가 오류를 범한 것으로 보이는 경우를 대상으로 함.

400 Bad request 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미
401 Unauthorized HTTP 표준에서는 "미승인"을 명확히 하고 있지만, 의미상 이 응답은 "미인증"을 의미. 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 함
403 Forbidden 클라이언트가 콘텐츠에 접근할 권리를 가지고 있지 않을 때 거절을 위한 응답
404 Not found 요청한 리소스를 찾을 수 없음을 의미. 인증받지 않은 클라이언트로부터 리소스를 숨기기 위하여 이 응답을 403 대신에 전송할 수도 있음
405 Method not allowed 요청한 메소드는 서버는 알고 있지만, 제거되었고 사용할 수 없음을 알림. 필수적인 메소드 GET과 HEAD는 제거될 수 없으며 이 에러 코드를 리턴할 수 없음
409 Conflict 요청한 상태가 서버와 충돌된 상태를 표시. 즉, 중복된 데이터를 요청한 경우이다.
429 Too many requests 사용자가 지정된 시간에 너무 많은 요청을 보낸 경우

더 자세한 에러 코드는 참고자료에 포함된 링크를 참조하기 바랍니다!

Server error 5xx

이 상태 코드 클래스는 서버가 요청을 잘못했거나, 수행할 수 없는 경우를 나타낸다. 서버는 오류 상황에 대한 설명과 일시적인 상태인지 영구적인 상태인지 여부를 포함하는 엔티티를 포함해야 한다.

500 Internal server error 서버에 오류가 발생하여 요청을 수행할 수 없을 때
501 Not implemented 서버에 요청을 수행할 수 있는 기능이 없을 경우, 예를 들어 요청 메소드를 인식하지 못할 경우 표시
502 Bad gateway 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받았을 경우 표시
503 Service unavailable 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없음
504 Gateway timeout 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했을 경우
505 HTTP version not supported 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않음
508 Loop detected 요청을 처리하는 동안 무한 루프를 감지
510 Not extended 서버가 요청을 이행하려면 요청에 대한 추가 확장이 필요
511 Network authentication required 클라이언트가 네트워크 액세스를 얻기 위해 인증을 받아야 할 필요가 있음을 나타냄

참고자료

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C

'독서 > 네트워크' 카테고리의 다른 글

누가 구글을 죽였나 🔪 (a.k.a. CVE-2023-44487 분석 해보기)  (0) 2024.01.04
전송 계층  (0) 2021.12.30
응용 계층  (0) 2021.12.24