HTTP 상태 코드 모음 (status codes 5가지 분류)

YS_Study.log·2022년 1월 17일
0
post-custom-banner

HTTP 상태 코드

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려준다.

-> HTTP요청메소드

HTTP 상태 코드는 첫글자에 따라 5가지로 크게 구분한다.
첫 글자는 1부터 5까지 있으며, 여기서 4와 5는 오류상황을 나타낸다.

HTTP 상태 코드 5가지 클래스

1xx (정보): 요청을 받았으며 프로세스(작업)를 계속한다
2xx (성공): 요청을 성공적으로 받았다! 인식했고 수용하였다
3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
4xx (클라이언트 오류): 클라이언트의 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다


1xx (조건부 응답)

100 Continue
이 임시적인 응답은 지금까지의 상태가 괜찮으며 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알려줍니다.\

101 Switching Protocol
이 코드는 클라이언트가 보낸 Upgrade (en-US) 요청 헤더에 대한 응답에 들어가며 서버에서 프로토콜을 변경할 것임을 알려줍니다.

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

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

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
서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 204 응답과 달리 요청자가 문서 보기를 재설정할 것을 요구한다.(예: 새 입력을 위한 양식 비우기)

206 Partial Content(일부컨텐츠)
서버가 GET 요청의 일부만 성공적으로 처리했다. 클라이언트에서 복수의 스트림을 분할 다운로드를 하고자 범위 헤더를 전송했기에 사용된다.

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

208 Multi-Status (이미 보고됨)
DAV에서 사용된다: propstat응답 속성으로 동일 컬렉션으로 바인드된 복수의 내부 멤버를 반복적으로 열거하는 것을 피하기 위해 사용됩니다.

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


3xx (리다이렉션 완료)

클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.

300 Multiple Choice (여러 선택항목)
서버가 요청에 따라 하나 이상의 응답이 가능하다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다. 반드시 하나는 선택해야한다.

301 Moved Permanently (영구이동)
요청한 리소스의 URI가 변경된 상태, GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다.

302 Found(임시이동)
이 응답 코드는 요청한 리소스의 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를 사용해야 합니다.


4xx (요청 오류)

4xx 클래스의 상태 코드는 클라이언트에 오류가 있음을 나타낸다.

400 Bad Request (잘못된 요청)
잘못된 문법으로 인하여 서버가 요청을 이해할 수 없다는 응답

401 Unauthorized(권한없음, 인증실패)
HTTP 표준에서는 "미승인(unauthorized)"를 명확히 하고 있지만, 의미상 "인증안됨(unauthenticated)"을 응답한다. 클라이언트는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 합니다.

402 Payment Required(결제필요)
첫 목표로는 디지털 결제 시스템에 사용하기 위하여 만들어졌지만 지금 사용되고 있지는 않습니다.

403 Forbidden(금지됨, 인가실패)
클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않아서, 서버가 요청을 거절한다. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있습니다.

404 Not Found(찾을 수 없다.)
서버는 요청받은 페이지(리소스)를 찾을 수 없습니다.
브라우저에서는 알려지지 않은 URL을 의미합니다. 해당 서버에 존재하지 않는 리소스에 대한 요청에 대한 응답 또는 서버들은 인증받지 않은 클라이언트로부터 리소스를 숨기기 위하여 이 응답을 403 대신에 응답할 수 있다.

405 Method Not Allowed(허용되지 않는 메소드)
요청에 지정된 방법을 사용할 수 없다. 예를 들어 POST 방식으로 요청을 받는 서버에 GET 요청을 보내는 경우, 또는 읽기 전용 리소스에 PUT 요청을 보내는 경우에 이 코드를 제공한다.

406 Not Acceptable(허용되지 않음)
이 응답은 서버가 서버 주도 콘텐츠 협상 을 수행한 이후, 사용자 에이전트에서 정해준 규격에 따른 어떠한 콘텐츠도 찾지 않았을 때, 웹서버가 보냅니다.

407 Proxy Authentication Required (프록시 인증 필요)
이것은 401(권한없음)과 비슷하지만 프록시에 의해 완료된 인증이 필요합니다.

408 Request Timeout(요청시간초과)
서버의 요청 대기가 시간을 초과했다.

409 Conflict(충동)
이 응답은 요청이 현재 서버의 상태와 충돌될 때 보냅니다.

410 Gone (사라짐)
서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답을 표시한다. 404(찾을 수 없음) 코드와 비슷하며 이전에 있었지만 더 이상 존재하지 않는 리소스에 대해 404 대신 사용하기도 한다.

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

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

413 Payload Too Large
요청이 너무 커서 서버가 처리할 수 없다.

414 URI Too Long (en-US)
클라이언트가 요청한 URI(일반적으로 URL)가 너무 길어 서버가 처리할 수 없다.

415 Unsupported Media Type (지원되지 않는 미디어 유형)
요청한 미디어 포맷은 서버에서 지원하지 않습니다, 서버는 해당 요청을 거절할 것입니다.

416 Requested Range Not Satisfiable
Range 헤더 필드에 요청한 지정 범위를 만족시킬 수 없습니다; 범위가 타겟 URI 데이터의 크기를 벗어났을 가능성이 있습니다.

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

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

421 Misdirected Request
서버로 유도된 요청은 응답을 생성할 수 없습니다. 이것은 서버에서 요청 URI와 연결된 스킴과 권한을 구성하여 응답을 생성할 수 없을 때 보내집니다.

422 Unprocessable Entity (WebDAV (en-US))
요청은 잘 만들어졌지만, 문법 오류로 인하여 따를 수 없습니다.

423 Locked (WebDAV (en-US))
리소스는 접근하는 것이 잠겨있습니다.

424 Failed Dependency (WebDAV (en-US))
이전 요청이 실패하였기 때문에 지금의 요청도 실패하였습니다.

426 Upgrade Required (en-US)
서버는 지금의 프로토콜을 사용하여 요청을 처리하는 것을 거절하였지만, 클라이언트가 다른 프로토콜로 업그레이드를 하면 처리를 할지도 모릅니다. 서버
는 Upgrade (en-US) 헤더와 필요로 하는 프로토콜을 알려주기 위해 426 응답에 보냅니다.

428 Precondition Required (en-US)
오리진 서버는 요청이 조건적이어야 합니다. 클라이언트가 리소스를 GET해서, 수정하고, 그리고 PUT으로 서버에 돌려놓는 동안 서드파티가 서버의 상태
를 수정하여 발생하는 충돌인 '업데이트 상실'을 예방하기 위한 목적입니다.

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

431 Request Header Fields Too Large
요청한 헤더 필드가 너무 크기 때문에 서버는 요청을 처리하지 않을 것입니다. 요청은 크기를 줄인 다음에 다시 전송해야 합니다.

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


5xx (서버 오류)

서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다.

500 Internal Server Error(내부 서버 오류)
서버에 오류가 발생하여 요청을 수행할 수 없다.

501 Not Implemented(구현되지않음)
요청 방법은 서버에서 지원되지 않으므로 처리할 수 없다. 서버가 지원해야 하는 유일한 방법은 GET와 HEAD이다. 이 코드는 반환하면 안됩니다.

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

503 Service Unavailable(서비스를 사용할 수 없다)
서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없다. 이는 대개 일시적인 상태이다.

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

505 HTTP Version Not Supported(HTTP 버전이 지원되지 않음)
요청에 사용된 HTTP 버전은 서버에서 지원되지 않습니다.

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

507 Insufficient Storage (용량부족)
서버에 내부 구성 오류가 있다. 즉, 선택한 가변 리소스는 투명한 콘텐츠 협상에 참여하도록 구성되므로 협상 프로세스의 적절한 종료 지점이 아닙니다.

508 Loop Detected (루프 감지됨)
서버가 요청을 처리하는 동안 무한 루프를 감지했습니다.

510 Not Extended (확장되지 않음)
서버가 요청을 이행하려면 요청에 대한 추가 확장이 필요합니다.

511 Network Authentication Required (네트워크 인증 필요)
511 상태 코드는 클라이언트가 네트워크 액세스를 얻기 위해 인증을 받아야 할 필요가 있음을 나타냅니다.

나무위키
MDN

profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!
post-custom-banner

0개의 댓글