나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-12-12 13:21:39

HTTP/응답 코드


파일:상위 문서 아이콘.svg   상위 문서: HTTP
1. 개요2. 표준 응답 코드
2.1. 1XX2.2. 2XX2.3. 3XX2.4. 4XX2.5. 5XX
3. 비표준 응답 코드
3.1. 1XX3.2. 2XX3.3. 3XX3.4. 4XX3.5. 5XX3.6. 6XX 이후
4. 여담

1. 개요

HTTP 응답 코드를 정리하는 문서.

MDN Web Docs2024년 9월 현재 최신 문서인 RFC 9110, http.dev의 문서에서 찾을 수 있다.

응답 코드는 보통 아래와 같이 분류되어 있다.

2. 표준 응답 코드

2.1. 1XX

정보 전달: 요청을 받았고, 작업을 진행 중이라는 의미이다. HTTP/1.0 이후 한동안 쓰이지 않아 서버도 클라이언트에 이 코드를 보내지 않았지만, 101의 경우 WebSocket 등에서, 103의 경우 페이지 로드 속도를 빠르게 하기 위해서 다시 쓰이기 시작했다.[1]

2.2. 2XX

성공: 이 작업을 성공적으로 받았고, 이해했으며, 받아들여졌다는 의미이다. 200, 201, 204, 206이 주로 사용되며, 나머지는 볼 일이 거의 없다.

2.3. 3XX

리다이렉션: 이 요청을 완료하기 위해서는 리다이렉션이 이루어져야 한다는 의미이다. 짧은 주소(단축 URL) 서비스의 경우 접속 시 301이나 302 코드를 보내고, 헤더의 location에 리다이렉션할 실제 URL을 적어 보낸다.

2.4. 4XX

클라이언트 오류: 이 요청은 올바르지 않다는 의미이다. 여기서부터 브라우저에 직접 표출된다. 굵게 강조된 것은 자주 보이는 오류들이다.

2.5. 5XX

서버 오류: 서버가 응답할 수 없다는 의미이며, 요청이 올바른지의 여부는 알 수 없다.

3. 비표준 응답 코드

비표준 응답 코드는 표준에 정의되어 있지 않은 응답을 처리하고 싶을 때 사용하거나, 보안상의 이유로 표준 응답 코드를 회피하고 싶을 때 사용한다. 6XX 이후의 영역은 사용자 정의 영역으로 사용된다.

3.1. 1XX

3.2. 2XX

3.3. 3XX

3.4. 4XX

3.5. 5XX

3.6. 6XX 이후

HTTP 응답 코드는 1XX ~ 5XX 대역에 대해서만 정의되어 있지만, 명확한 제한은 없기 때문에 일부 프로그램에서는 6XX 이후의 대역을 사용하기도 한다. (예시) 대표적으로 Dynatrace의 keynote systems 등이 있다.

4. 여담

응답 코드별로 강아지고양이 사진을 붙인 사이트들이 있다. 303번(...) 400번 고양이는 엿을 날리고 있다...
[1] 여담으로 2019년 기준 Express.js 서버에서 100 코드를 보내게 만들면 브라우저가 로딩만 하다가 오류를 표시한다.[2] 요청 메시지의 첫 부분이 서버에 도착하였으며 클라이언트는 정상적으로 계속 요청할 수 있음.[3] 서버는 Upgrade 헤더에 정의된 프로토콜을 변환(Switching Protocol)하기 위해 클라이언트의 요청을 수락하였음. 을 의미한다. 쉽게 생각해서 클라이언트가 HTTP/1.1을 Web Socket으로 변환을 요청하였으며 서버가 이를 수락하고 변환을 진행할 준비가 되었다는 것을 의미한다.[WebDAV] WebDAV 전용 HTTP 응답 코드[5] 물론 HTTP 200을 사용해도 되지만, 오류로 인해 내용이 있어야 하는 상황에서 없는 것인지 원래 내용이 없는 것인지 확실히 하기 위해 HTTP 204를 사용한다. 요청을 받아서 결과를 가지고왔지만 내용(데이터)은 원래 없었다. 라고 이해하면 된다.[WebDAV] [WebDAV] [영구결번] 표준에서 제외된 영구 결번 코드이다. 비표준 응답 코드 문단 참조[영구결번] [10] Basic과 Digest 두 가지가 있다. Basic은 아이디와 비밀번호를 평문 그대로(!) 전송하며, Digest는 아이디와 nonce값을 이용해 해시를 만들어 전송한다.[11] 엔진엑스에서는 Request Entity Too Large(요청한 엔티티가 너무 긺)이라고 뜬다.[12] 통합 자원 식별자(Uniform Resource Identifier)란 뜻으로 URL과 같은 뜻으로 사용되나 URL의 상위 개념에 가깝다.[영구결번] [WebDAV] [WebDAV] [WebDAV] [RFC8470] https://tools.ietf.org/html/rfc8470[18] 대한민국도 warning.or.kr로 강제 이동 시키거나 TLS 핸드셰이크를 강제로 끊는 방법을 사용할 뿐 이 코드를 사용하지는 않는다.[WebDAV] [WebDAV] [RFC7234] HTTP1.1 캐싱으로 정의되었으나, 잘 사용되지 않는다는 이유로 2022년에 폐기되었다.[RFC7234] [RFC7234] [RFC7234] [RFC7234] [RFC7234] [RFC7234] [HTCPCP] 하이퍼텍스트 커피 포트 제어 프로토콜(HTCPCP, RFC 2324)HTCPCP-TEA 프로토콜(RFC 7168)에서 정의된 코드. 둘 다 만우절 장난으로 만든 것으로, RFC 2324는 1998년에, RFC 7168은 2014년에 공개되었다.[HTCPCP] [HTCPCP] [HTCPCP] [IIS] 인터넷 정보 서비스에서 사용하는 비표준 응답 코드.[NGINX] NGINX에서 사용하는 비표준 응답 코드[IIS] [IIS] [AWS] AWS에서 사용하는 비표준 응답 코드[AWS] [AWS] [NGINX] [NGINX] [NGINX] [NGINX] [NGINX] [Cloudflare] Cloudflare에서 쓰는 비표준 응답 코드[Cloudflare] [Cloudflare] [Cloudflare] [Cloudflare] [Cloudflare] [50] SSL/TLS로 접속할 때 하는 신원 확인 과정.[Cloudflare] [Cloudflare] [Cloudflare] [AWS]

분류