HTTP 상태코드

2023. 7. 5. 14:57브라우저&네트워크

100 Continue

- 계속 진행하라.

- 임시 응답으로 지금까지 상태가 괜찮으며 클라이언트가 계속해서 요청을 하거나  요청을 완료한 경우엔 무시해도 되는 것을 알려준다.

 

 

101 Switching Protocol

- 프로토콜을 전환하라.

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

 

 

102 Processing 

- (WebDAV) 처리 중이다.

- 서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 알려준다.

 

 

103 Early Hints

- 주로 Link 헤더와 함께 사용되며, 서버가 응답을 준비하는 동안 사용자 에이전트가 사전 로딩을 시작할 수 있도록 한다.

 


 

200 OK

- 서버가 요청을 성공적으로 처리하였다.

- 요청이 성공적으로 되었을때, 성공의 의미는 HTTP 메소드에 따라 달라진다.

- GET : 리소스를 불러와서 메시지 바디에 전송되었습니다.

- HEAD : 개체 헤더가 메시지 바디에 있습니다.

- PUT & POST : 수행 결과에 대한 리소스가 메시지 바디에 전송되었습니다.

- TRACE : 메시지 바디는 서버에서 수신한 요청 메시지를 포함하고 있습니다.

 

 

201 Created

- 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다. 

- 이 요청은 일반적으로 POST, 또는 일부 PUT 요청 이후 따라온다.

 

 

202 Accepted

- 요청을 수신하였지만 그에 응하여 행동할 수 없습니다.

- 이 응답은 요청 처리에 대한 결과를 이후에 HTTP 로 비동기 응답을 보내는 것에 대해서 명확하게 명시하지 않는다.

- 다른 프로세스에서 처리 또는 서버가 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 위해 만들어졌다.

 

 

203 Non-Authoritative Information

- 응답 헤더가 오리지널 서버로부터 제공된 것이 아니다.

- 돌려받은 메타 정보 세트가 오리진 서버의 것과 일치하지 않지만 로컬이나 서드 파티 복사본에서 모아졌음을 의미한다.

- 이러한 조건에서는 이 응답이 아니라 200 응답을 반드시 우선된다.

 

 

204 No Content

- 처리를 성공하였지만, 클라이언트에게 돌려줄 콘텐츠가 없다.

- 요청에 대해서 보내줄 수 있는 콘텐츠가 없지만, 헤더는 의미 있을 수 있다.

- 사용자-에이전트는 리소스가 캐시된 헤더를 새로운 것으로 업데이트 할 수 있다. 

 

 

205 Reset Content

- 처리를 성공하였고 브라우저의 화면을 리셋하라.

- 이 응답 코드는 요청을 완수한 이후에 사용자 에이전트에게 이 요청을 보낸 문서 뷰를 리셋하라고 알려준다.

 

 

206 Partial Content 

- 콘텐츠의 일부만을 보낸다.

- 클라이언트에서 복수의 스트림을 분할 다운로드를 하고자 범위 헤더를 전송했기 때문에 사용된다.

 

 

207 Multi-Status

- (WebDAV) 처리 결과의 스테이터스가 여러 개이다.

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

 

 

226 IM Used

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

 

 


 

 

300 Multiple Choice

- 선택 항목이 여러 개 있다.

- 요청에 대해 하나 이상의 응답이 가능하다.

- 사용자 에이전트 또는 사용자는 그 중에 하나를 반드시 선택해야 한다. 

 

 

301 Moved Permanently

- 지정한 리소스가 새로운 URI로 이동하였다.

- 요청한 리소스의 URI 가 변경되었음을 의미한다.

 

 

302 Found

- 요청한 리소스를 다른 URI에서 찾았다.

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

- 새롭게 변경된 URI 는 나중에 만들어 질 수 있다.

- 클라이언트는 향후의 요청도 반드시 동일한 URI 로 해야한다.

 

 

303 See Other

- 다른 위치로 요청하라.

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

 

 

304 Not Modified

- 마지막 요청 이후 요청한 페이지는 수정되지 않았다.

- 이는 캐시를 목적으로 사용된다. 

- 클라이언트에게 응답이 수정되지 않았음을 알려주며, 그러므로 클라이언트는 계속해서 응답의 캐시된 버전을 사용할 수 있다.

 

 

305 Use Proxy

- 지정한 리소스에 액세스하려면 프록시를 통해야 한다.

- 이전 버전의 HTTP 기술 사양에서 정의 되었다.

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

- 프록시의 in-band 설정에 대한 보안상의 걱정으로 인해 사라져 가고 있다.

 

 

306 unused

- 더 이상 사용되지 않으며, 현재는 추후 사용을 위해 예약되어있다.

 

 

307 Temporary Redirect 

- 임시로 리다이렉션 요청이 필요하다.

- 클라이언트가 요청한 리소스가 다른 URI 에 있으며, 이전 요청과 동일한 메소드를 사용하여 요청해야 할 때, 서버가 클라이언트에 이 응답을 직접 보낸다.

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

- 만약 첫 요청에 POST 가 사용되었다면 두번째 요청도 반드시 POST 를 사용해야한다.

 

 

308 Permanent Redirect

- 리소스가 HTTP 응답 헤더의 Location 에 명시된 영구히 다른 URI 에 위치하고 있음을 의미한다.

- 301 Moved Permanently HTTP 응답 코드와 동일한 의미를 가지고 있으며, 사용자 에이전트가 반드시 HTTP 메소드를 변경하지 말아야 하는 점만 다르다.

- 만약 첫 요청에 POST 가 사용되었다면 두번째 요청도 반드시 POST 를 사용해야 한다.

 

 


 

400 Bad Request

- 요청의 구문이 잘못되었다.

- 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미한다.

 

 

401 Uauthorized

- 지정한 리소스에 대한 액세스 권한이 없다.

- 비록 HTTP 표준에서는 "미승인(unauthorized)" 을 명확히 하고 있지만 의미상 이 응답은 "비인증(unauthenticated)"을 의미한다.

- 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 한다.

 

 

402 Payment Required

- 지정한 리소스를 액세스하기 위해서는 결제가 필요하다.

- 나중에 사용할 것을 대비해 예약되었다.

- 첫 목표로는 디지털 결제 시스템에 사용하기 위해 만들어졌지만 지금까지 사용되고 있지는 않는다.

 

 

403 Forbidden

- 지정한 리소스에 대한 액세스가 금지되었다.

- 클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다.

- 예를들어 그들은 미승인이어서 서버는 거절을 위한 적절한 응답을 보낸다. 401 과 다른점은 서버가 클라이언트가 누구인지 알고 있다.

 

 

404 Not Found

- 서버는 요청받은 리소스를 찾을 수 없습니다.

- 브라우저에서는 알려지지 않은 URL 을 의미한다.

- API 에서 종점은 적절하지만 리소스 자체는 존재하지 않음을 의미할 수도 있다.

- 서버들은 인증받지 않은 클라이언트로 부터 리소스를 숨기기 위해 이 응답을 403 대신에 전송할 수도 있다.

- 이 응답코드는 웹에서 반복적으로 발생하기 때문에 가장 유명하다.

 

 

405 Method Not Allowed

- 요청한 URI가 지정한 메소드를 지원하지 않는다.

- 요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없습니다.

- 예를 들어, 어떤 API 에서 리소스를 삭제하는 것을 금지할 수 있습니다.

- 필수적인 메소드인 GET 과 HEAD 는 제거될 수 없으며 이 에러코드를 리턴할 수 없다.

 

 

406 Not Acceptable

- 클라이언트가 Accept-* 헤더에 지정한 항목에 관해 처리할 수 없다.

- 서버가 서버 주도 콘텐츠 협상을 수행한 이후 사용자 에이전트에서 정해진 규격에 따른 어떠한 콘텐츠도 찾지 않았을 때 웹 서버가 보낸다.

 

 

407 Proxy Authentication Required

- 클라이언트는 프록시 서버에 인증이 필요하다.

- 이것은 401과 비슷하지만 프록시에 의해 완료된 인증이 필요하다.

 

 

408 Request Timeout

- 요청을 기다리다 서버에서 타임아웃하였다.

- 요청을 한지 시간이 오래된 연결에 일부 서버가 전송하며, 어떨 때에는 이전에 클라이언트로부터 어떠한 요청이 없었다고 하더라도 보내지기도 한다.

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

- 이 응답은 특정 몇몇 브라우저에서 빈번하게 보이는데 chrome, firefox 27+, IE9 과 같은 웹 서핑 속도를 올리기 위해 HTTP 사전 연결 메커니즘을 사용하는 브라우저들이 해당된다.

- 일부 서버는 이 메시지를 보내지 않고 연결을 끊어버리기도 한다.

 

 

409 Conflict

- 서버가 요청을 수행하는 중에 충돌이 발생하였다.

- 요청이 현재 서버의 상태와 충돌될 때 보낸다.

 

 

410 Gone

- 지정한 리소스가 이전에는 존재하였지만, 현재는 존재하지 않는다.

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

- 클라이언트가 그들의 캐쉬와 리소스에 대한 링크를 지우기를 기대한다.

- HTTP 기술 사양은 이 상태코드가 일시적인 홍보용 서비스에 사용되기를 기대한다.

- API 는 알려진 리소스가 이 상태코드와 함께 삭제되었다고 강요해서는 안된다.

 

 

411 Length Required

- 요청 헤더에 Content-Length를 지정해야 한다.

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

 

 

412 Precondition Failed

- If-Match와 같은 조건부 요청에서 지정한 사전 조건이 서버와 맞지 않는다.

- 클라이언트의 헤더에 있는 전제조건은 서버의 전제조건에 적절하지 않습니다.

 

 

413 Payload Too Large

- 요청 메시지가 너무 크다.

- 요청 엔티티는 서버에서 정의한 한계보다 큽니다. 서버는 연결을 끊거나 혹은 Retry-After 헤더 필드로 돌려보낼 것이다.

 

 

414 URI Too Long

- 요청 URI가 너무 길다.

- 클라이언트가 요청한 URI 는 서버에서 처리하지 않기로 한 길이보다 길다.

 

 

415 Unsupported Media Type

- 클라이언트가 지정한 미디어 타입을 서버가 지원하지 않는다.

- 요청한 미디어 포맷은 서버에서 지원하지 않습니다. 서버는 해당 요청을 거절할 것입니다.

 

 

416 Requested Range Not Satisfiable

- 클라이언트가 지정한 리소스의 범위가 서버의 리소스 사이즈와 맞지 않는다.

- Range 헤더 필드에 요청한 지정 범위를 만족시킬 수 없습니다. 

- 범위가 타겟 URI 데이터의 크기를 벗어났을 가능성이 있습니다.

 

 

417 Expectation Failed

- 클라이언트가 지정한 Expect 헤더를 서버가 이해할 수 없다.

- Expect 요청 헤더 필드로 요청한 예상이 서버에서는 적당하지 않음을 알려준다.

 

 

421 Misdirected Request

- 서버로 유도된 요청은 응답을 생성할 수 없습니다.

- 서버에서 요청 URI 와 연결된 스킴과 권한을 구성하여 응답을 생성할 수 없을 때 보내진다.

 

 

422 Unprocessable Entity

- (WebDAV) 클라이언트가 송신한 XML이 구문은 맞지만, 의미상 오류가 있다.

- 요청은 잘 만들어졌지만, 문법 오류로 인하여 따를 수 없습니다.

 

 

423 Locked

- 리소스는 접근하는 것이 잠겨있습니다.

 

 

424 Failed Dependency

- (WebDAV) 다른 작업의 실패로 인해 본 요청도 실패하였다.

- 이전 요청이 실패하였기 때문에 지금 요청도 실패하였습니다.

 

 

426 Upgrade Required

- 클라이언트의 프로토콜의 업그레이드가 필요하다.

- 서버는 지금의 프로토콜을 사용하여 요청을 처리하는 것을 거절하였지만, 클라이언트가 다른 프로토콜로 업그레이드를 하면 처리를 할지도 모릅니다.

- 서버는 Upgrade 헤더와 필요로하는 프로토콜을 알려주기 위해 426 응답을 보냅니다.

 

 

428 Precondition Required

- If-Match와 같은 사전조건을 지정하는 헤더가 필요하다.

- 오리진 서버는 요청이 조건적이어야 합니다. 

- 클라이언트가 리소스를 GET 해서, 수정하고 그리고 PUT 으로 서버에 돌려 놓는 동안 서드파티가 서버의 상태를 수정하여 발생하는 충돌인 업데이트 상실을 예방하기 위한 목적이다.

 

 

429 Too Many Requests

- 클라이언트가 주어진 시간 동안 너무 많은 요청을 보냈다.

- 사용자가 지정된 시간에 너무 많은 요청을 보냈습니다. ("rate limiting")

 

 

431 Request Header Fields Too Large

- 헤더의 길이가 너무 크다.

- 요청한 헤더 필드가 너무 크기 때문에 서버는 요청을 처리하지 않을 것입니다.

- 요청은 크기를 줄인 다음에 다시 전송해야한다.

 

 

444 Connection Closed Without Response

- 응답없이 연결 닫음

- (NGNIX) 응답을 보내지 않고 연결을 종료하였다.

 

 

451 Unavailable For Legal Reasons

- 법적으로 문제가 있는 리소스를 요청하였다.

- 사용자가 요청한 것은 정부에 의해 검열된 웹 페이지와 같은 불법적인 리소스입니다.

 

 


 

500 Internet Server Error

- 서버에 에러가 발생하였다.

- 서버가 처리 방법을 모르는 상황이 발생했습니다. 서버는 아직 처리 방법을 알 수 없습니다.

 

 

501 Not Implemented 

- 요청한 URI의 메소드에 대해 서버가 구현하고 있지 않다.

- 요청 방법은 서버에서 지원되지 않으므로 처리할 수 없습니다. 

- 서버가 지원해야 하는 유일한 방법은 GET 과 HEAD 이다. 

- 이 코드는 반환하면 안된다.

 

 

502 Bad Gateway

- 게이트웨이 또는 프록시 역할을 하는 서버가 그 뒷단의 서버로부터 잘못된 응답을 받았다.

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

 

 

503 Service Unavailable

- 현재 서버에서 서비스를 제공할 수 없다.

- 서버가 요청을 처리할 준비가 되지 않았습니다.

- 일반적인 원인은 유지보수를 위해 작동이 중단되거나 과부하가 걸렸을 때입니다. 

- 이 응답과 함께 문제를 설명하는 사용자 친화적인 페이지가 전송되어야 한다는 점에 유의하십시오.

- 이 응답은 임시 조건에 사용되어야 하며, Retry-After HTTP 헤더는 가능하면 서비스를 복구하기 전 예상 시간을 포함해야 합니다.

- 웹 마스터는 또한 이러한 일시적인 조건 응답을 캐시하지 않아야 하므로 이 응답과 함께 전송되는 캐싱 관련 헤더에 대해서도 주의해야한다.

 

 

504 Gateway Timeout

- 게이트웨이 또는 프록시 역할을 하는 서버가 그 뒷단의 서버로부터 응답을 기다리다 타임아웃이 발생하였다.

- 서버가 게이트웨이 역할을 하고 있으며 적시에 응답을 받을 수 없을 때 주어진다.

 

 

505 HTTP Version Not Supported

- 클라이언트가 요청에 사용한 HTTP 버전을 서버가 지원하지 않는다.

- 요청에 사용된 HTTP 버전은 서버에서 지원되지 않습니다.

 

 

506 Variant Also Negotiates

- 서버에 내부 구성 오류가 있다. 즉 요청을 위한 투명한 컨텐츠 협상이 순환 참조로 이어진다.

 

 

507 Insufficient Storage

- (WebDAV) 서버에 저장 공간 부족으로 처리에 실패하였다.

- 서버에 내부 구성 오류가 있다.

- 선택한 가변 리소스는 투명한 콘텐츠 협상에 참여하도록 구성되므로 협상 프로세스의 적절한 종료 지점이 아닙니다.

 

 

508 Loop Detected

- 서버가 요청을 처리하는 동안 무한 루프를 감지했습니다.

 

 

510 Not Extended

- 서버가 요청을 이행하려면 요청에 대한 추가 확장이 필요합니다.

 

 

511 Network Authentication Required

- 클라이언트가 네트워크 액세스를 얻기 위해 인증을 받아야 할 필요가 있음을 나타낸다.

 

 


 

 

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

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

 

'브라우저&네트워크' 카테고리의 다른 글

HTTP 와 HTTPS 차이점  (0) 2023.08.10
TCP와 UDP  (0) 2023.08.09
쿠키와 세션  (0) 2023.08.08
CORS 란?  (0) 2023.08.06
HTTP Method  (0) 2023.08.06