전형적인 서양 공돌이 감성이므로 익숙하지 않은 사람들은 어색하게 느껴질 수 있음.
출처는 이곳. https://http.cat/ 강아지 버전도 있으니 취향에 맞춰서 보면 되겠음. https://httpstatusdogs.com/
1XX - 정보 전달: 요청을 받았고, 작업을 진행중이다.
100 Continue - 클라이언트가 서버로 보낸 요청에 문제가 없으니 다음 요청을 이어서 보내도 된다는 것을 의미한다. HTTP/1.0 이후로는 더 이상 쓰이지 않는다.
101 Switching Protocols - 클라이언트가 Upgrade 헤더를 통해 요청한 것에 따라 서버가 프로토콜을 바꾼다는 것을 알려주는 코드다.
102 Processing - 사용자가 수신 요청을 하여 처리하고는 있지만 아직은 제대로 된 응답을 할 수 없다. (응답 없음)의 HTTP 응답 코드 버전이라고 생각하면 되겠음.
2XX - 성공: 작업을 성공적으로 처리하였다.
200 OK - 요청이 성공적으로 받아들여져 처리되었다.
프로그래머라면 가장 흔하게 볼 수 있는 응답 코드이다.
201 Created - 요청이 성공적으로 처리되어 리소스가 생성되었다.
202 Accepted - 요청이 성공적으로 받아들여졌지만, 처리되지는 않았다.
204 No Content - 요청을 받아들여 성공적으로 처리했지만 컨텐츠를 제공하지는 않는다.
206 Partial Content - 컨텐츠의 일부 부분만 제공한다.
207 Multi-Status 다수의 동작이 일어난 클라이언트에서 볼 수 있으며, 여러 응답인 상태에서 적절한 정도를 사용자에게 제공하도록 하는 응답코드다.
3XX: 리다이렉션 - 이 요청을 완료하기 위해서는 리다이렉션이 이루어져야 한다.
300 Multiple Choices - 서버에서 여러 개의 응답이 있다. 다만, 사용되는 코드는 아닌데 응답을 선택하는 방법이 표준화되지 않았기 때문이다.
301 Moved Permanently - 영구적으로 컨텐츠가 이동하였다.
302 Found - 일시적으로 컨텐츠가 이동하였다.
303 See Other - 서버가 사용자의 GET요청을 처리하여 다른 URL에서 요청된 정보를 가져올 수 있드록 응답한다.
304 Not Modified - 요청한 리소스를 재전송할 필요가 없다. 305 Use Proxy - 말 그대로. 프록시를 사용하지 않으면 접근할 수 없다. 다만 보안상의 이유로 현재는 사용되지 않는 응답 코드다.
307 Temporary Redirect - 일시적으로 컨텐츠가 이동하였다. 302와의 차이점은 HTTP 메소드의 변경을 허용하지 않는다는 것이다.
4XX 클라이언트 오류: 요청이 올바르지 않다.
여기서부터는 프로그래밍에 관심이 없는 일반인들에게도 익숙할텐데(특히 404), 이는 여기서부터 브라우저에 직접 표출되기 때문이다.
400 Bad Request (잘못된 요청) - 요청 자체가 잘못 되었다.
아마도 403과 함께 404 다음으로 유명한 에러 코드일 것이다.
401 Unauthorized(권한 없음): 인증이 필요한 리소스에 인증 없이 접근했다.
403과의 차이점은 403의 경우 단순히 권한이 없음을 의미한다.
402 Payment Required(결제 필요): 말 그대로.
현재는 사용되지 않으나, 향후에 사용하기 위해 예약된 코드다.
403 Forbieend(거부됨 혹은 금지됨): 서버가 요청을 거부하였다. 흔히 IP 차단 등으로 인해 발생한다.
404 Not Found(찾을 수 없음):
컴퓨터에 관심 없는 사람도 한번쯤은 들어봤을 만큼 가장 유명하고, 자주 볼 수 있는 에러코드.
찾는 리소스가 없다.
405 Method Not Allowed(허용되지 않은 메소드): 서버에서 허용되지 않는 메소드로 요청을 하였다.
406 Not Aceceptable(받아들일 수 없음): 요청은 정상이나, 서버에서 받아들일 수 없다.
408 Request Timeout(요청 시간 초과): 말 그대로. 요청 중 시간이 초과하였다.
409 Conflict(충돌): 사용자의 요청이 서버와 충돌하였다.
410 Gone(사라짐): 찾는 리소스가 없다.
404와의 차이점은 찾는 리소스가 영구적으로 소멸되었음을 의미한다.
411 Length Required(길이 필요): 사용자가 서버로 요청할때 헤더에 Content-Length 필드 값이 없을 경우 발생하는 오류다.
412 Precondition Failed(전제조건 실패): 사용자가 서버로 조건부 요청을 할때 서버와 사용자의 전제조건이 일치하지 않아 발생하는 오류.
413 Request Entity Too Large(요청된 것이 너무 긺): 요청 본문이 너무 길다.
414 Request-URL Too Long(요청된 URL이 너무 긺): 413에서 '본문'을 'URL'로 바꾸면 됨.
415 Unsupported Media Type(지원하지 않는 미디어 타입): 사용자가 요청한 미디어타입이 서버에서 지원하지 않는다.
416 Requested Range Not Satisfiable(요청된 범위가 만족스럽지 않음): 요청 헤더의 Range로 지정한 범위가 잘못되었다.
417 Expectation Failed(예측 실패): 요청 헤더의 Expect값이 서버에서는 적절하지 못 하다.
418 I'm a teapot(찻주전자로 커피를 만들 수 없음):
이건 그냥 만우절 이벤트로 만든 장난 응답코드임. https://www.google.com/teapot https://tools.ietf.org/html/rfc2324
이래 보여도 엄연한 표준 응답코드임.
420 Enhance Your Calm: 트위터에서만 쓰는 비표준 응답코드로, 뜻은 후술할 429와 같음.
421 Misdirected Request(잘못된 요청): 요청이 응답을 생성할 수 없는 서버로 전달되었다.
422 Unprocessable Entity(처리할 수 없는 개체): 요청 자체는 정상적으로 수리되었으나, 문법 오류로 인하여 응답할 수 없다.
423 Locked(잠김): 요청한 리소스가 잠겨있다.
424 Failed Dependency(실패한 종속성): 이전의 요청이 실패한 상태에서 지금의 요청도 실패했다.
425 Too Early(너무 일찍 요청): 이게 뭔지는 나도 잘 모르겠다.
426 Upgrade Required(업그레이드 필요): 클라이언트에서 보낸 요청의 프로토콜이 맞지 않아 현재 서버에서 처리할 수 없다.
429 Too Many Requests(너무 많은 요청): 단시간에 너무 많은 요청을 받았다.
431 Request Header Fields Too Large(요청 헤더 필드가 너무 큼): 요청한 헤더 값이 너무 커서 서버에서 처리를 하지 않는다.
451 Unavailable for Legal Reasons(법적인 이유로 차단됨): 국가 검열에 의거하여 차단되었다. 유래는 당연히 미국 소설 화씨 451.
5XX(서버 오류): 오류코드인것은 4XX와 같다. 차이점은 4XX와 달리 요청은 올바르지만 이에 대해 서버가 응답할 수 없음을 뜻한다.
500 Internal Server Error(내부 서버 에러): 서버에 오류가 발생해 작업을 수행할 수 없다.
501 Not Implemented(요청한 기능 미지원): 서버가 요청을 수행하는데 필요한 기능을 지원하지 않는다.
502 Bad Gateway:
수많은 덬들을 환장하게 만들었던 바로 그 오류.
게이트웨이가 연결된 서버로부터 잘못된 응답을 받았다.
503 Service (Temporarily) Unavailable(서비스를 일시적으로 이용할 수 없음): 말 그대로.
504 Gateway Timeout(게이트웨이 시간초과): 이것도 말 그대로.
506 Variant Also Negotiates: 서버 내부 구성값에 오류가 있어 반환된다.
507 Insufficient Storage: 서버 내부 구성에 오류가 있다.
508 Loop Detected: 서버가 요청을 처리하는 동안 무한 루프를 발견하였다.
이것이 무슨 뜻인지는 나도 모르겠다.
510 Not Extended: 서버가 요청을 처리할 때 요청에 대한 추가 확장이 필요하다.
:
511 Network Authentication Required: 사용자가 네트워크 엑세스 권한이 필요하다.