[http] 418“I ‘m a teapot”이 실제로 HTTP 응답 코드입니까?

418 “I ‘m a teapot”이 정말 HTTP 응답 코드인가요?

응답 코드 목록을 포함하여 인터넷에서 이에 대한 다양한 참조가 있지만 이상한 농담인지 알 수 없습니다.



답변

이 코드를 사용합니다. 두 개의 개별 HTTP 서버에 nginx 리버스 프록시 요청이 있습니다. 하나는 인증되지 않은 사용자에 대한 요청을 처리하고 두 번째는 인증 된 사용자에 대한 요청을 처리합니다. 이 특별한 경우의 문제는 첫 번째 서버가 사용자의 인증 여부를 결정하는 서버라는 것입니다. 이유를 묻지 마십시오.

따라서 첫 번째 서버가 사용자가 인증되었음을 확인하면 418 I'm a teapot. 그런 다음 NGINX는 트래픽을 내부적으로 두 번째 서버로 다시 라우팅합니다. 브라우저에 관한 한 그것은 단일 요청이었습니다.

이것은 HTCPCP 코드 418 의 정신에 따릅니다 . 주전자로 BREW를 시도하면 적절한 응답은 “나는 해당 요청을 처리 할 수있는 유형이 아니지만 다른 요청이있을 수 있습니다.”입니다. .. 즉, “나는 주전자입니다. 커피 메이커를 찾으십시오.” (두 번째 서버는 커피 메이커입니다).

궁극적으로 418은 RFC 7231에 명시 적으로 정의되어 있지 않지만 여전히 4xx (Client Error).

6. 응답 상태 코드

  • 4xx (클라이언트 오류) : 요청에 잘못된 구문이 포함되어 있거나 수행 할 수 없습니다.

6.5. 클라이언트 오류 4xx

  • 상태 코드의 4xx (클라이언트 오류) 클래스는 클라이언트에 오류가 있음을 나타냅니다. HEAD 요청에 응답 할 때를 제외하고 서버는 오류 상황에 대한 설명과 그것이 일시적 또는 영구적 인 상태인지를 포함하는 표현을 보내야합니다. 이러한 상태 코드는 모든 요청 방법에 적용 할 수 있습니다. 사용자 에이전트는 포함 된 표현을 사용자에게 표시해야합니다 (SHOULD).


답변

HTTP 응답 코드 418은 원래 RFC 2324 ( “Hyper Text Coffee Pot Control Protocol (HTCPCP / 1.0)”) 및 RFC 7168 ( “The Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)”) 프로토콜에서 정의되었습니다.

Wikipedia 기준 : HTTP 상태 코드 목록 : # 418

이 코드는 중 하나로 1998 년에 정의 된 기존의 IETF 만우절 농담 에, RFC 2324 , 하이퍼 텍스트 커피 주전자 제어 프로토콜이 되고 실제 HTTP 서버에 의해 구현 될 것으로 예상되지 . RFC는 커피를 끓 이도록 요청한 주전자에서이 코드를 반환해야한다고 지정합니다. 이 HTTP 상태는 Google.com을 비롯한 일부 웹 사이트에서 이스터 에그로 사용됩니다 .


답변

여기에 이미지 설명 입력

예, 실제 프로덕션 서버에서 HTTP 418이 돌아 오는 것을 확인했습니다. 존재합니다.


답변

예, 실제로 인터넷 엔지니어링 태스크 포스에서 공식 RFC로 게시 한 “실제”코드이지만 RFC는 4 월 1 일에 게시되었으며 만우절 농담 (나머지 Hyper Text Coffee Pot Control과 함께)을 의미했습니다. 프로토콜), 합법적 인 구현을위한 것이 아닙니다. 이것이 대부분의 사이트에서 이스터 에그를 사용하지만 그렇지 않은 경우에는 사용하지 않는 이유입니다. 이 의견 에서 언급했듯이 400 (잘못된 요청)과 같은 더 적절한 상태가있는 경우가 많습니다. 즉, IT 커뮤니티 덕분에 이제 예약 된 코드가되었으므로 조만간 어디로 든 갈 것이라고 기대하지 마십시오.

특히, Larry Masinter (Wikipedia에서 언급 한 RFC의 저자)에 따르면, 문제의 HTTP 확장은 실제로 (풍자적 인) 목적을 수행합니다. “이것은 HTTP가 부적절하게 확장 된 많은 방법을 식별합니다.”


답변

나는 418을 한때 공식적인 의미를 가지고 있었지만 이제는 공식적으로 “할당되지 않은”예약 된 코드로 취급하는 것이 더 안전하다고 생각합니다.

나는 역사적으로 이러한 코드에 대해 지금과 다르게 생각한 것이 있다고 생각합니다. 이것은 오늘날 무의미하고 재미있게 들립니다. 아마 아닐까요?

즉,이 코드를 사용하지 않을 것입니다.


답변