[서버] HTTP 응답 상태 코드
본문 바로가기
공부 (IT)/IT관련_서버네트워크

[서버] HTTP 응답 상태 코드

by 달님’SS 2021. 5. 7.
728x90
반응형
SMALL

HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드 목록

(하단 내용은 위키백과를 참고했음)

 

 

HTTP 응답 코드는 5개의 클래스(분류)로 구분된다. 상태 코드의 첫 번째 숫자는 응답의 클래스를 정의합니다.

마지막 두 자리는 클래스나 분류 역할을 하지 않으며, 첫자리에 대한 5가지 값들은 다음과 같습니다.

 

- 1xx (정보): 요청을 받았으며 프로세스를 계속한다

- 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다

- 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다

- 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다

- 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다

 

첫번째 숫자가 4 or 5인 경우 정상적인 상황이 아니므로 관리자가 반드시 알아야 하는 정보입니다.

 

 

[1XX] (조건부 응답) (Information responses)

: 요청을 받았으며 작업을 계속한다

100(계속) Continue 진행중임을 의미하는 응답코드이다.
서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다. (현재까지의 진행 상태에 이상이 없는 상태)
101(프로토콜 전환) Switching Protocol 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.
102(처리) Processing
(WebDAV)
서버가 요청을 수신하였으며 이를 처리하고 있지만, 아직 제대로 된 응답을 알려줄 수 없음을 알려준다.

 

 

[2XX] (성공) (Successful responses)

: 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.

200(성공) OK 서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다.
201(작성됨) Created 성공적으로 요청되었으며 서버가 새 리소스를 작성했다. 
이 응답은 일반적으로 POST 요청 또는 일부 PUT 요청 이후에 따라온다.
202(허용됨) Accepted 서버가 요청을 접수했지만 아직 처리하지 않았다.
203(신뢰할 수 없는 정보) Non-Authoritative Information 서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하고 있다.
204(콘텐츠 없음) No Content 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다.
205(콘텐츠 재설정) Reset Content 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다.
204 응답과 달리 이 응답은 요청을 완수한 이후에 사용자 에이전트에게 이 요청을 보낸 문서 뷰를 리셋하라고 알려준다.  (예: 새 입력을 위한 양식 비우기).
206(일부 콘텐츠) Partial Content 서버가 GET 요청의 일부만 성공적으로 처리했다.
클라이언트에서 복수의 스트림을 분할 다운로드를 하고자 범위 헤더를 전송했기 때문에 사용된다. 클라이언트가 이어받기를 시도하면 웹서버가 이에 대한 응답코드로 '206 Partial Content'와 함께 Range 헤더에 명시된 데이터의 부분(byte)부터 전송을 시작한다.
207(다중 상태) Multi-Status 멀티-상태 응답은 여러 리소스가 여러 상태 코드인 상황이 적절한 경우에 해당되는 정보를 전달한다.
208(이미 보고됨) Already Reported Prostat(property와 status의 합성어) 응답 속성으로 동일 컬렉션으로 바인드된 복수의 내부 멤버를 반복적으로 열거하는 것을 피하기 위해 사용된다.
226  IM Used
(HTTP Delta encoding)
서버가 GET 요청에 대한 리소스의 의무를 다 했고, 그리고 응답이 하나 또는 그 이상의 인스턴스 조작이 현재 인스턴스에 적용이 되었음을 알려준다.

 

 

[3XX] (리다이렉션 완료) (Redirection messages)

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

300(여러 선택항목) Multiple Choice 요청에 대해서 하나 이상의 응답이 가능하다. 사용자 에언트 또는 사용자는 그중에 하나를 반드시 선택해야 한다.
서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다.
301(영구 이동) Moved Permanently  요청한 리소스의 URI가 변경되었음을 의미한다.
GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다.
302(임시 이동) Found  요청한 리소스의 URI가 일시적으로 변경되었음을 의미한다. 새롭게 변경된 URI는 나중에 만들어질 수 있다. 그러므로, 클라이언트는 향후의 요청도 반드시 동일한 URI로 해야한다.
(현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.)
303(기타 위치 보기) See Other 클라이언트가 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때, 서버가 클라이언트로 직접 보내는 응답이다.
304(수정되지 않음) Not Modified 마지막 요청 이후 요청한 페이지는 수정되지 않았다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않는다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답(If-Modified-Since HTTP 헤더라고 함)을 표시하도록 서버를 구성해야 한다.

(캐시를 목적으로 사용된다. 이것은 클라이언트에게 응답이 수정되지 않았음을 알려주며, 그러므로 클라이언트는 계속해서 응답의 캐시된 버전을 사용할 수 있다.)
305(프록시 사용) Use Proxy 요청자는 프록시를 사용하여 요청한 페이지만 액세스할 수 있다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 하다.
307(임시 리다이렉션) Unused 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
308(영구 리다이렉션, RFC에서 실험적으로 승인됨) Temporary Redirect 리소스가 이제 HTTP 응답 헤더의 Location:에 명시된 영구히 다른 URI에 위치하고 있음을 의미한다. 이것은 301 Moved Permanently HTTP 응답 코드와 동일한 의미를 가지고 있으며, 사용자 에이전트가 반드시 HTTP 메소드를 변경하지 말아야 하는 점만 다르다. 만약 첫 요청에 POST가 사용되었다면, 두번째 요청도 반드시 POST를 사용해야 한다.

 

 

[4XX] (요청오류) (Client error responses)

: 클라이언트에 오류가 있음을 알려준다.

400(잘못된 요청) Bad Request
서버가 요청의 구문을 인식하지 못했다.
401(권한 없음) Unauthorized 이 요청은 인증이 필요하다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다. 상태 코드 이름이 권한 없음(Unauthorized)으로 되어 있지만 실제 뜻은 인증 안됨(Unauthenticated)에 더 가깝다
402(결제 필요) Payment Required 이 요청은 결제가 필요하다. 
디지털 결제 시스템에 사용하기 위하여 만들어졌지만 지금 사용되고 있지는 않는다.
403(Forbidden, 금지됨) Forbidden 서버가 요청을 거부하고 있다. 예를 들자면, 사용자가 리소스에 대한 필요 권한을 갖고 있지 않다. (401은 인증 실패, 403은 인가 실패라고 볼 수 있음)
404(Not Found, 찾을 수 없음) Not Found 서버가 요청한 페이지(Resource)를 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.
405(허용되지 않는 방법) Method Not Allowed 요청에 지정된 방법을 사용할 수 없다. 예를 들어 POST 방식으로 요청을 받는 서버에 GET 요청을 보내는 경우, 또는 읽기 전용 리소스에 PUT 요청을 보내는 경우에 이 코드를 제공한다.
406(허용되지 않음) Not Acceptable 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없다.
407(프록시 인증 필요) Proxy Authentication Required 이 상태 코드는 401(권한 없음)과 비슷하지만 요청자가 프록시를 사용하여 인증해야 한다.
(프록시에 의해 완료된 인증이 필요하다.)
408(요청 시간초과) Request Timeout 서버의 요청 대기가 시간을 초과하였다. 
409(충돌) Conflict 서버가 요청을 수행하는 중에 충돌이 발생했다.
서버는 응답할 때 충돌에 대한 정보를 포함해야 한다. 서버는 PUT 요청과 충돌하는 PUT 요청에 대한 응답으로 이 코드를 요청 간 차이점 목록과 함께 표시해야 한다.
410(사라짐) Gone 요청한 콘텐츠가 서버에서 영구적으로 삭제되었으며, 전달해 줄 수 있는 주소 역시 존재하지 않을 때 보낸다.  404(찾을 수 없음) 코드와 비슷하며 이전에 있었지만 더 이상 존재하지 않는 리소스에 대해 404 대신 사용하기도 한다. 리소스가 영구적으로 이동된 경우 301을 사용하여 리소스의 새 위치를 지정해야 한다.
411(길이 필요) Length Required 서버는 유효한 콘텐츠 길이 헤더 입력란 없이는 요청을 수락하지 않는다.
(서버에서 필요로 하는 Content-Length 헤더 필드가 정의되지 않은 요청이 들어왔기 때문에 서버가 요청을 거절한다.)
412(사전조건 실패) Precondition Failed 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않는다.
413(요청 속성이 너무 큼) Payload Too Large 요청이 너무 커서 서버가 처리할 수 없다.
414(요청 URI가 너무 긺) URI Too Long 요청 URI(일반적으로 URL)가 너무 길어 서버가 처리할 수 없다.
415(지원되지 않는 미디어 유형) Unsupported Media Type 요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있다.
416(처리할 수 없는 요청범위) Requested Range Not Satisfiable 요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 서버는 이 상태 코드를 표시한다.
417(예상 실패) Expectation Failed 서버는 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없다.
418(I'm a teapot) I'm a teapot 서버는 커피를 찻 주전자에 끓이는 것을 거절합니다.(?)
420    
421(Misdirected Request) Misdirected Request 서버로 유도된 요청은 응답을 생성할 수 없다. 이것은 서버에서 요청 URI와 연결된 스킴과 권한을 구성하여 응답을 생성할 수 없을 때 보내진다.
422(처리할 수 없는 엔티티) Unprocessable Entity (WebDAV) 요청은 잘 만들어졌지만, 문법 오류로 인하여 따를 수 없다.
423(잠김) Locked (WebDAV) 접근하려는 리소스가 잠겨 있다.
424(실패된 의존성) Failed Dependency (WebDAV) 이전 요청이 실패하였기 때문에 지금의 요청도 실패하였다.
425(정렬되지 않은 컬렉션)    
426(업그레이드 필요) Upgrade Required 클라이언트는 업그레이드 헤더 필드에 주어진 프로토콜로 요청을 보내야 한다.
(서버는 지금의 프로토콜을 사용하여 요청을 처리하는 것을 거절하였지만, 클라이언트가 다른 프로토콜로 업그레이드를 하면 처리를 할지도 모른다. 서버는 Upgrade 헤더와 필요로 하는 프로토콜을 알려주기 위해 426 응답에 보낸다. )

428(전제조건 필요) Precondition Required 오리진 서버는 요청이 조건적이어야 한다. 클라이언트가 리소스를 GET해서, 수정하고, 그리고 PUT으로 서버에 돌려놓는 동안 서드파티가 서버의 상태를 수정하여 발생하는 충돌인 '업데이트 상실'을 예방하기 위한 목적임.
429(너무 많은 요청) Too Many Requests 사용자가 지정된 시간에 너무 많은 요청을 보냈습니다("rate limiting").
431(요청 헤더 필드가 너무 큼) Request Header Fields Too Large 요청한 헤더 필드가 너무 크기 때문에 서버는 요청을 처리하지 않을 것이다. 요청은 크기를 줄인 다음에 다시 전송해야 한다.
444(응답 없음)    
449(다시 시도)    
450(윈도 자녀 보호에 의해 차단됨)    
451(법적인 이유로 이용 불가) Unavailable For Legal Reasons 사용자가 요청한 것은 정부에 의해 검열된 웹페이지와 같은 불법적인 리소스이다.
451(리다이렉션)    
494(요청 헤더가 너무 큼)    
495(Cert 오류)    
496(Cert 없음)    
497(HTTP to HTTPS)    
499(클라이언트가 요청을 닫음)    

 

 

[5XX] (서버오류) (Server error reponses)

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

500(내부 서버 오류) Internal Server Error 서버에 오류가 발생하여 요청을 수행할 수 없다.
501(구현되지 않음) Not Implemented 서버에 요청을 수행할 수 있는 기능이 없다. 예를 들어 서버가 요청 메소드를 인식하지 못할 때 이 코드를 표시한다.

502 (불량 게이트웨이) Bad Gateway 불량 게이트웨이): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받았다.
서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미한다. 인터넷상의 서버가 다른 서버로부터 유효하지 않은 응답을 받은 경우 발생한다.
503(서비스를 사용할 수 없음) Service Unavailable 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없다. 이는 대개 일시적인 상태이다. 
서버가 요청을 처리할 준비가 되지 않았으며, 일반적인 원인은 유지보수를 위해 작동이 중단되거나 과부하가 걸린 서버이다.
504(게이트웨이 시간초과) Gateway Timeout 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했다.
웹페이지를 로드하거나 브라우저에서 다른 요청을 채우려는 동안 한 서버가 액세스하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미한다. 이 오류 응답은 서버가 게이트웨이 역할을 하고 있으며 적시에 응답을 받을 수 없을 경우 주어진다.
이 오류는 대게 인터넷상의 서버 간의 네트워크 오류이거나 실제 서버의 문제다. 컴퓨터, 장치 또는 인터넷 연결에 문제가 아닐 수 있다.

505(HTTP 버전이 지원되지 않음) HTTP Version Not Supported 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않는다.

서버에서 지원되지 않는 HTTP 버전을 클라이언트가 요청한 것이다.
대부분의 웹 브라우저는 웹 서버가 1.x 버전의 HTTP 프로토콜을 지원한다고 가정한다. 실제로 1.0 이하의 매우 오래된 버전은 요즘 거의 사용되지 않는다. 특히 최신 버전의 프로토콜보다 보안 및 성능이 좋지 않기 때문이다. 따라서 웹 브라우저에서 이 오류가 표시되는 경우 웹 서버 소프트웨어에서 지원하는 HTTP 버전을 확인해 보아야 한다.

506 Variant Also Negotiates 서버에 내부 구성 오류가 있는 경우 발생한다. 요청을 위한 투명한 콘텐츠 협상이 순환 참조로 이어진다.
507(용량 부족) Insufficient Storage 선택한 가변 리소스는 투명한 서버에 내부 구성 요류가 있는 경우 발생한다. 콘텐츠 협상에 참여하도록 구성되므로 협상 과정에서 적절한 끝점이 아니다.
508(루프 감지됨) Loop Detected (WebDAV) 서버가 요청을 처리하는 동안 무한 루프를 감지한 경우 발생한다.
509(대역폭 제한 초과)    
510(확장되지 않음) Not Extended 서버가 요청을 이행하려면 요청에 대한 추가 확장이 필요하다.
511(네트워크 인증 필요) Network Authentication Required 511 상태 코드는 클라이언트가 네트워크 액세스를 얻기 위해 인증할 필요가 있음을 나타낸다.
520(Unknown Error)    
598(네트워크 읽기 시간초과 오류,알 수 없음)    
599(네트워크 연결 시간초과 오류, 알 수 없음)    

 

728x90
반응형

댓글


TOP