요약
1xx (조건부 응답) Informational
2xx (성공) Successful
3xx (리다이렉션 완료) Redirection
4xx (클라이언트 요청 오류) Client Error
5xx (서버 오류) Server Error
실무 하면서 자주봤던건 빨간색으로 마킹함.
1xx (조건부 응답) - Informational
요청을 받았으며 작업을 계속한다.
이 상태의 상태 코드는 상태-라인과 선택적 헤더(컴퓨터에서 출력될 때 각 페이지 맨 윗부분에 자동으로 붙는 부분)만을 포함하는 임시의 응답을 나타내고 빈 라인에 의해서 종결된다. HTTP/1.0이래로 어떤 1XX 상태 코드들도 정의 되지 않았다. 서버들은 1XX 응답을 실험적인 상태를 제외하고 HTTP/1.0 클라이언트(서버에 연결된 컴퓨터)로 보내면 안 된다.
- 100(계속): 요청자는 요청을 계속해야 한다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다.
- 101(프로토콜 전환): 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.
- 102(처리, RFC 2518)
2xx (성공) - Successful
이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.
- 200(성공 - OK): 서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다.
- 201(작성됨): 성공적으로 요청되었으며 서버가 새 리소스를 작성했다.
- 202(허용됨): 서버가 요청을 접수했지만 아직 처리하지 않았다.
- 203(신뢰할 수 없는 정보): 서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하고 있다.
- 204(콘텐츠 없음 - No Content): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다. 서버에서 처리후 클라이언트에 정보를 보낼필요없는경우 사용.
- 205(콘텐츠 재설정): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 204 응답과 달리 이 응답은 요청자가 문서 보기를 재설정할 것을 요구한다(예: 새 입력을 위한 양식 비우기).
- 206(일부 콘텐츠 - partial Content): 서버가 GET 요청의 일부만 성공적으로 처리했다. 지정된 범위만큼의 요청을 받았다는 것을 알려줌
- 207(다중 상태, RFC 4918)
- 208(이미 보고됨, RFC 5842)
- 226 IM Used (RFC 3229)
3xx (리다이렉션 완료) - Redirection
클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.
- 300(여러 선택항목): 서버가 요청에 따라 여러 조치를 선택할 수 있다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다.
- 301(영구 이동 - Moved Permanentitly): 요청한 페이지를 새 위치로 영구적으로 이동했다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다.
- 302(임시 이동 - Found): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다. (일시적인 URI 이동)
- 303(기타 위치 보기 - See Other): 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시한다. HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달한다. ( 302 코드와 같지만, 303은 리디렉션 위치를 GET 메서드를 통해 얻어야 한다고 명확하게 되어 있음)
- 304(수정되지 않음 - Not Modified): 마지막 요청 이후 요청한 페이지는 수정되지 않았다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않는다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답(If-Modified-Since HTTP 헤더라고 함)을 표시하도록 서버를 구성해야 한다. 요청한 리소스가 마지막 요청 이후 변경된 적이 없기 때문에 기존 클라이언트의 로컬캐시 리소스를 사용하도록 알려줌
(300번대로 분류되어 있지만 ,리디렉션과는 관계없는 처리를 함) - 305(프록시 사용): 요청자는 프록시를 사용하여 요청한 페이지만 액세스할 수 있다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 하다.
- 307(임시 리다이렉션 - Temporary Redirect): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
- 308(영구 리다이렉션, RFC에서 실험적으로 승인됨)
4xx (요청 오류) - Client Error
4xx 클래스의 상태 코드는 클라이언트에 오류가 있음을 나타낸다.
- 400(잘못된 요청 - Bad Request ): 서버가 요청의 구문을 인식하지 못했다. > 클라이언트의 요청 구문이 잘못됨
- 401(권한 없음 - Unauthorized): 이 요청은 인증이 필요하다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다. 요청 처리를 위해 HTTP 인증 (Basic 인증 , Digest 인증) 정보가 필요함을 알림
- 403(금지됨 - Forbidden ): 서버가 요청을 거부하고 있다.
- 404(찾을 수 없음 - Not Found): 클라이언트가 요청한 리소스를 서버에서 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.
- 405(허용되지 않는 방법 - Mothod Not Allowed): 요청에 지정된 방법을 사용할 수 없다. > 허용되지않은 HTTP 메서드사용 (GET방식만 허용되는데 POST사용 등)
- 406(허용되지 않음): 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없다.
- 407(프록시 인증 필요): 이 상태 코드는 401(권한 없음)과 비슷하지만 요청자가 프록시를 사용하여 인증해야 한다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 한다.
- 408(요청 시간초과): 서버의 요청 대기가 시간을 초과하였다.
- 409(충돌): 서버가 요청을 수행하는 중에 충돌이 발생했다. 서버는 응답할 때 충돌에 대한 정보를 포함해야 한다. 서버는 PUT 요청과 충돌하는 PUT 요청에 대한 응답으로 이 코드를 요청 간 차이점 목록과 함께 표시해야 한다.
- 410(사라짐): 서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답을 표시한다. 404(찾을 수 없음) 코드와 비슷하며 이전에 있었지만 더 이상 존재하지 않는 리소스에 대해 404 대신 사용하기도 한다. 리소스가 영구적으로 이동된 경우 301을 사용하여 리소스의 새 위치를 지정해야 한다.
- 411(길이 필요): 서버는 유효한 콘텐츠 길이 헤더 입력란 없이는 요청을 수락하지 않는다.
- 412(사전조건 실패): 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않는다.
- 413(요청 속성이 너무 큼): 요청이 너무 커서 서버가 처리할 수 없다.
- 414(요청 URI가 너무 긺): 요청 URI(일반적으로 URL)가 너무 길어 서버가 처리할 수 없다.
- 415(지원되지 않는 미디어 유형): 요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있다.
- 416(처리할 수 없는 요청범위): 요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 서버는 이 상태 코드를 표시한다.
- 417(예상 실패): 서버는 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없다.
- 418(I'm a teapot, RFC 2324)
- 420(Enhance Your Calm, 트위터)
- 422(처리할 수 없는 엔티티, WebDAV; RFC 4918)
- 423(잠김,WebDAV; RFC 4918)
- 424(실패된 의존성, WebDAV; RFC 4918)
- 424(메쏘드 실패, WebDAV)
- 425(정렬되지 않은 컬렉션, 인터넷 초안)
- 426(업그레이드 필요, RFC 2817)
- 428(전제조건 필요, RFC 6585)
- 429(너무 많은 요청, RFC 6585)
- 431(요청 헤더 필드가 너무 큼, RFC 6585)
- 444(응답 없음, Nginx)
- 449(다시 시도, 마이크로소프트)
- 450(윈도 자녀 보호에 의해 차단됨, 마이크로소프트)
- 451(법적인 이유로 이용 불가, 인터넷 초안)
- 451(리다이렉션, 마이크로소프트)
- 494(요청 헤더가 너무 큼, Nginx)
- 495(Cert 오류, Nginx)
- 496(Cert 없음, Nginx)
- 497(HTTP to HTTPS, Nginx)
- 499(클라이언트가 요청을 닫음, Nginx)
5xx (서버 오류) - Server Error
서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다.
- 500(내부 서버 오류 -Internal Server Error ): 서버에 오류가 발생하여 요청을 수행할 수 없다.
- 501(구현되지 않음): 서버에 요청을 수행할 수 있는 기능이 없다. 예를 들어 서버가 요청 메소드를 인식하지 못할 때 이 코드를 표시한다.
- 502(불량 게이트웨이): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받았다.
- 503(서비스를 사용할 수 없음 - Service Unavailable ): 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없다. 이는 대개 일시적인 상태이다.
- 504(게이트웨이 시간초과 - Gateway timeout ): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했다. 게이트웨이에 문제발생.
- 505(HTTP 버전이 지원되지 않음 - HTTP Version Not Supported ): 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않는다.
- 506(Variant Also Negotiates, RFC 2295)
- 507(용량 부족, WebDAV; RFC 4918)
- 508(루프 감지됨, WebDAV; RFC 5842)
- 509(대역폭 제한 초과, Apache bw/limited extension)
- 510(확장되지 않음, RFC 2774)
- 511(네트워크 인증 필요, RFC 6585)
- 598(네트워크 읽기 시간초과 오류, 알 수 없음)
- 599(네트워크 연결 시간초과 오류, 알 수 없음)
출처 - https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C
IANA가 현재 공식 HTTP 상태 코드 레지스트리를 관리하고 있다.
'Program > Etc' 카테고리의 다른 글
Cookie SameSite 설정하기 (Chrome 80 쿠키 이슈) (3) | 2020.02.10 |
---|---|
2020년 프로그래밍 언어 순위 및 전망 (12) | 2020.01.07 |
프로그래밍 언어 순위 및 전망 (2019년 7월) (0) | 2019.07.29 |
Base64 인코딩 (Base64 인코딩 이유) (5) | 2019.03.19 |
[C#] Math Class( 반올림,절상,절하 ) (0) | 2016.12.21 |