나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-04-14 13:00:49

HTTP/응답 코드

파일:상위 문서 아이콘.svg   상위 문서: HTTP
1. 개요2. 1XX3. 2XX4. 3XX5. 4XX6. 5XX7. 비표준 응답 코드8. 여담


MDN Web Docs 또는 최근 업데이트된 HTTP 응답코드 문서도 참고. (RFC7231)

1. 개요

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

2. 1XX

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

3. 2XX

성공: 이 작업을 성공적으로 받았고, 이해했으며, 받아들여졌다는 의미이다. 200, 201, 204, 206을 제외하고는 볼 일이 거의 없는 코드들이다.

4. 3XX

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

5. 4XX

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

6. 5XX

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

7. 비표준 응답 코드

8. 여담

응답코드별로 강아지고양이 사진을 붙인 사이트들이 있다. 303번(...) 400번 고양이는 엿을 날리고 있다...


[1] 여담으로 2019년 기준 Express.js 서버에서 100 코드를 보내게 만들면 브라우저가 로딩만 하다가 오류를 표시한다.[2] 물론 HTTP 200을 사용해도 되지만, 오류로 인해 내용이 있어야 하는 상황에서 없는 것인지 원래 내용이 없는 것인지 확실히 하기 위해 HTTP 204를 사용한다.[3] 나무위키 기준으로는 그냥 브라우저에서 https://namu.wiki/i/...로 들어가거나 파이어폭스의 네트워크 개발자 도구를 열고 새 요청을 존재하지 않는 HTTP 메소드(그냥 X 등으로 써도 된다)로 요청을 하면 나온다. 아니면 아무 URI에나 퍼센트를 끼워넣으면 된다. 다만 그게 urlencode로 유효하지 않아야 한다.[4] Basic과 Digest 두가지가 있다. Basic은 아이디와 비밀번호를 평문 그대로(!) 전송하며, Digest는 아이디와 nonce값을 이용해 해시를 만들어 전송한다.[5] 만약 접근을 index.html까지 지정해서 했다면 404가 뜬다. 이건 방식의 차이인데, index.html을 지정하지 않고 접근하면 서버는 자동으로 index.html을 찾아서 띄워주고 그런 파일이 없다면 해당 디렉토리에 있는 파일 리스트를 보여주게 된다. 그래서 옛날에는 index.html이 없으면 웹 브라우저에 파일 리스트가 뜨는 모습을 자주 볼 수 있었다. 그러나 보안상 이유로 요즘 만들어지는 웹 사이트들은 서버 설정을 통해 클라이언트가 웹 브라우저에서 파일 리스트를 보는 권한을 백이면 백 막아놓기 때문에 접근을 거부하는 403 에러를 띄우게 된다. 그러나 파일까지 지정해서 접근하면 서버는 파일로 바로 접근하기 때문에 파일이 없다는 404 에러를 띄우는 것이다.[6] 더 정확한 뜻은 '요청에서 서버는 찾았으나 데이터는 찾지 못함'을 뜻한다. 서버를 찾지 못할 경우에는 아예 접속 자체가 되지 않는다.[7] 엔진엑스에서는 Request Entity Too Large(요청한 엔티티가 너무 긺)이라고 뜬다.[8] 통합 자원 식별자(Uniform Resource Identifier)란 뜻으로 URL과 같은 뜻으로 사용되나 URL의 상위 개념에 가깝다.[RFC8470] https://tools.ietf.org/html/rfc8470[10] 대한민국도 warning.or.kr로 강제 이동시키거나 TLS 핸드쉐이크를 강제로 끊는 방법을 사용할 뿐 이 코드를 사용하지는 않는다.[11] RFC에는 전통적으로 만우절 장난으로 문서가 작성되곤 한다. 2014년 만우절에는 HTCPCP를 확장한 HTCPCP-TEA 프로토콜이 공개되기도 했다.[12] 구글도 이스터 에그로 이 응답 코드를 반환하는 페이지를 만들었을 정도이다. 콘솔을 열어보면 확인할 수 있듯이 페이지만 저리 해 둔 게 아니라 진짜로 418을 반환한다.[13] 이에 반발하는 운동으로 Save 418 Movement가 있었고, 이 운동이 성공해 Python의 requests 같은 대부분의 라이브러리에서 418 상태 코드가 남아 있다. 영문 위키피디아 참고.[14] SSL/TLS로 접속할 때 하는 신원확인 과정.

분류