HTTP 상태코드 정리

영진·2023년 1월 16일
0

network

목록 보기
6/14
post-thumbnail

HTTP 상태코드는 다음과 같이 정리 할 수 있다.

- 정보 응답

- 성공 응답

- 리다이렉션 메시지

- 클라이언트 에러 응답

- 서버 에러 응답


1. 정보 응답 메시지

정보 응답 코드는 총 4개가 존재한다.

- 100 Continue: 지금까지의 상태가 괜찮은 것이다. 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알려준다.

- 101 Switching Protocol: 클라이언트가 보낸 Upgrade 요청 헤더에 대한 응답에 들어가며 서버에서 프로토콜을 변경할 것임을 알려준다.

102 Processing (WebDAV (en-US)): 이 코드는 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 알려준다.

103 Early Hints: 이 상태 코드는 주로 Link (en-US) 헤더와 함께 사용되어 서버가 응답을 준비하는 동안 사용자 에이전트가(user agent) 사전 로딩(preloading (en-US))을 시작할 수 있도록 한다.


2. 성공 응답 메시지

정보 응답 코드는 총 11개가 존재한다.


200 OK: 요청이 성공적으로 된 것이다.
GET: 리소스를 불러와서 메시지 바디에 전송 되었다.
HEAD: 개체 해더가 메시지 바디에 있다.
PUT or POST: 수행 결과에 대한 리소스가 메시지 바디에 전송되었다.
TRACE: 메시지 바디는 서버에서 수신한 요청 메시지를 포함하고 있다.

201 Created: 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었다.
이 응답은 주로 POST 요청 또는 일부 PUT 요청 이후에 오게 된다.

202 Accepted: 요청을 수신하였지만 그에 응하여 행동할 수 없다.
요청 처리에 대한 결과를 이후에 HTTP로 비동기 응답을 보내는 것에 대해서 명확하게 명시하지 않다.
이것은 다른 프로세스에서 처리 또는 서버가 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 위해 만들어졌다.

203 Non-Authoritative Information (en-US): 이 응답 코드는 돌려받은 메타 정보 세트가 오리진 서버의 것과 일치하지 않지만 로컬이나 서드 파티 복사본에서 모아졌음을 의미한다.
이러한 조건에서는 이 응답이 아니라 200 OK 응답을 반드시 우선됩니다.

204 No Content: 콘텐츠가 없으나, 헤더는 의미있을 수 있다.
유저 에이전트는 리소스가 캐시된 헤더를 새로운 것으로 업데이트 할 수 있다.

205 Reset Content: 이 응답 코드는 요청을 완수한 이후에 유저 에이전트에게 이 요청을 보낸 문서 뷰를 리셋하라고 알려준다.

206 Partial Content: 이 응답 코드는 클라이언트에서 복수의 스트림을 분할 다운로드를 하고자 범위 헤더를 전송했기 때문에 표시가 된다.

207 Multi-Status (WebDAV (en-US)): 멀티-상태 응답은 여러 리소스가 여러 상태 코드인 상황이 적절한 경우에 해당되는 정보를 전달한다.

208 Multi-Status (WebDAV (en-US)): DAV에서 사용됩니다.

226 IM Used (HTTP Delta encoding): 서버가 GET 요청에 대한 리소스의 의무를 다 했고, 그리고 응답이 하나 또는 그 이상의 인스턴스 조작이 현재 인스턴스에 적용이 되었음을 알려준다.


3. 리다이렉션 메시지

리다이렉션 메시지는 총 9개가 존재한다.


300 Multiple Choice: 요청에 대해서 하나 이상의 응답이 가능하다. 유저 에이전트 또는 사용자는 그중에 하나를 반드시 선택해야 한다. 응답 중 하나를 선택하는 방법에 대한 표준화 된 방법은 존재하지 않습니다.

301 Moved Permanently: 요청한 리소스의 URI가 변경되었음을 의미한다.

302 Found: 요청한 리소스의 URI가 일시적으로 변경되었음을 의미한다.

303 See Other: 클라이언트가 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때, 서버가 클라이언트로 직접 보내는 응답이다.

304 Not Modified: 캐시를 목적으로 사용하며, 클라이언트에게 응답이 수정되지 않았음을 알려준다.

305 Use Proxy Deprecated: 요청한 응답은 반드시 프록시를 통해서 접속해야 하는 것을 알려준다.

306 unused: 더이상 사용되지는 않은데, 추후 사용을 위해 예약되어 있다.

307 Temporary Redirect: 이것은 302 Found HTTP 응답 코드와 동일한 의미를 가지고 있으며, 유저 에이전트가 반드시 사용된 HTTP 메소드를 변경하지 말아야 하는 점만 다르다.

308 Permanent Redirect (en-US): 이것은 301 Moved Permanently HTTP 응답 코드와 동일한 의미를 가지고 있으며, 유저 에이전트가 반드시 HTTP 메소드를 변경하지 말아야 하는 점만 다르다.


4. 클라이언트 에러 응답 메시지

클라이언트 에러 응답는 총 28개가 존재한다.

400 Bad Request: 이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미한다.

401 Unauthorized: 이 응답은 "비인증(unauthenticated)"을 의미한다. 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 한다.

402 Payment Required: 이 응답 코드는 나중에 사용될 것을 대비해 예약되었다.

403 Forbidden: 클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않는다.

404 Not Found: 서버는 요청받은 리소스를 찾을 수 없다. 브라우저에서는 알려지지 않은 URL을 의미한다.

405 Method Not Allowed: 요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없다.

406 Not Acceptable: 이 응답은 서버가 서버 주도 콘텐츠 협상 을 수행한 이후, 유저 에이전트에서 정해준 규격에 따른 어떠한 콘텐츠도 찾지 않았을 때, 웹서버가 보낸다.

407 Proxy Authentication Required (en-US): 이것은 401과 비슷하지만 프록시에 의해 완료된 인증이 필요하다.

408 Request Timeout: 서버가 사용되지 않는 연결을 끊고 싶어한다는 것을 의미한다.

409 Conflict: 이 응답은 요청이 현재 서버의 상태와 충돌될 때 보낸다.

410 Gone: 이 응답은 요청한 콘텐츠가 서버에서 영구적으로 삭제되었으며, 전달해 줄 수 있는 주소 역시 존재하지 않을 때 보낸다.

411 Length Required: 서버에서 필요로 하는 Content-Length 헤더 필드가 정의되지 않은 요청이 들어왔기 때문에 서버가 요청을 거절한다.

412 Precondition Failed (en-US): 클라이언트의 헤더에 있는 전제조건은 서버의 전제조건에 적절하지 않을때 나타나는 코드이다.

413 Payload Too Large: 요청 엔티티는 서버에서 정의한 한계보다 클 경우 나타난다.

414 URI Too Long: 클라이언트가 요청한 URI는 서버에서 처리하지 않기로 한 길이보다 경우 발생한다.

415 Unsupported Media Type: 요청한 미디어 포맷은 서버에서 지원하지 않을때 발생한다.

416 Requested Range Not Satisfiable: Range 헤더 필드에 요청한 지정 범위를 만족시킬 수 없을때 발생한다.

417 Expectation Failed (en-US): 이 응답 코드는 Expect 요청 헤더 필드로 요청한 예상이 서버에서는 적당하지 않음을 알려준다.

418 I'm a teapot: 서버는 커피를 찻 주전자에 끓이는 것을 거절한다?

421 Misdirected Request: 서버로 유도된 요청의 응답을 생성할 수 없을때 발생한다.

422 Unprocessable Entity (WebDAV (en-US)): 요청은 잘 만들어졌지만, 문법 오류로 인하여 따를 수 없을 경우 발생한다.

423 Locked (WebDAV (en-US)): 리소스가 접근하는 것이 잠겨있을 경우 발생한다.

424 Failed Dependency (WebDAV (en-US)): 이전 요청을 실패하였기 때문에, 지금 요청도 실패할 경우 발생하는 코드이다.

426 Upgrade Required (en-US): 서버는 지금의 프로토콜을 사용하여 요청을 처리하는 것을 거절하였지만, 클라이언트가 다른 프로토콜로 업그레이드를 하면 처리를 할지도 모를 경우 생기는 코드이다.

428 Precondition Required (en-US): 서버로 요청을 할려면 요청이 조건부이어야만 할 때 뜨는 코드이다.

429 Too Many Requests: 사용자가 지정된 시간에 너무 많은 요청을 보낼경우 뜨는 코드 이다.

431 Request Header Fields Too Large: 요청한 헤더 필드가 너무 크기 때문에 발생하는 코드이다.

451 Unavailable For Legal Reasons (en-US): 사용자가 요청한 것은 정부에 의해 검열된 웹 페이지와 같은 불법적인 리소스이다.


5. 서버 에러 응답 메시지

서버 에러 응답은 총 11개가 존재한다.

500 Internal Server Error: 서버가 처리 방법을 모르는 상황이 발생했을때이다.

501 Not Implemented: 요청 방법은 서버에서 지원되지 않을 때 이다.

502 Bad Gateway: 서버가 요청을 처리하는 데 필요한 응답을 얻기 위해 게이트웨이로 작업하는 동안 잘못된 응답을 수신했음을 의미한다.

503 Service Unavailable: 서버가 요청을 처리할 준비가 되지 않았을때 발생한다.

504 Gateway Timeout: 이 오류 응답은 서버가 게이트웨이 역할을 하고 있으며 적시에 응답을 받을 수 없을 때 주어진다.

505 HTTP Version Not Supported: 요청에 사용된 HTTP 버전은 서버에서 지원되지 않을때 발생한다.

506 Variant Also Negotiates (en-US): 서버에 내부 구성 오류가 있을 경우 발생한다.

507 Insufficient Storage (en-US): 마찬가지로 서버 내부 구성의 오류가 있을 경우 발생한다.

508 Loop Detected (en-US) (WebDAV (en-US)): 서버가 요청을 처리하는 동안 무한 루프를 감지 했을 경우 표시된다.

510 Not Extended (en-US): 서버가 요청을 이행하려면 요청에 대한 추가 확장이 필요할때 발생한다.

511 Network Authentication Required (en-US): 클라이언트가 네트워크 액세스를 얻기 위해 인증을 받아야 할 필요가 있음을 의미한다.

profile
I'm good at cloud computing.

0개의 댓글