하이퍼텍스트 커피 포트 제어 프로토콜

하이퍼텍스트 커피 포트 제어 프로토콜(Hyper Text Coffee Pot Control Protocol, HTCPCP)은 커피 포트를 제어, 모니터링 및 진단하기 위한 농담조의 통신 프로토콜이다. 이는 1998년 4월 1일 만우절 RFC로 게시된 에 명시되어 있으며, 만우절 장난의 일부이다. 확장 버전인 HTCPCP-TEA는 2014년 4월 1일 RFC 7168로 게시되어 차 끓이기를 지원하며, 역시 오류 418의 만우절 RFC로 발표되었다.

프로토콜
RFC 2324는 래리 마신터가 작성했으며, 그는 이를 풍자라고 설명하며 "이것은 심각한 목적을 가지고 있다 – HTTP가 부적절하게 확장된 많은 방식을 식별한다"고 말했다. 프로토콜의 문구는 이것이 완전히 진지하지 않다는 것을 분명히 보여주었다. 예를 들어, "커피를 끓이기 위해 에스프레소처럼 특별히 고안된 프로토콜에 대한 강하고, 진하며, 풍부한 요구 사항이 있다"고 언급한다.

그 기원의 농담적인 성격에도 불구하고, 혹은 아마도 그 때문에, 이 프로토콜은 온라인에서 작은 존재로 남아 있다. 편집기 이맥스는 이 프로토콜의 완전히 기능하는 클라이언트 측 구현을 포함하며,. 모질라의 프로토콜 지원 부족에 대해 불평하는 여러 버그 보고서가 존재한다. HTCPCP 출판 10년 후, 웹 제어 커피 컨소시엄 (WC3)은 월드 와이드 웹 컨소시엄 (W3C)의 "HTTP Vocabulary in RDF"를 패러디하여 "HTCPCP Vocabulary in RDF"의 첫 번째 초안을 발표했다.

2014년 4월 1일, RFC 7168은 찻주전자를 완전히 처리하도록 HTCPCP를 확장했다.

명령 및 응답
HTCPCP는 HTTP의 확장이다. HTCPCP 요청은 coffee (통합 자원 식별자 (URI) 스킴 또는 나열된 29개 다른 언어 중 해당 단어)로 식별되며 HTTP 메서드에 몇 가지 추가 사항을 포함한다.
 메서드  정의BREW 또는 POSTHTCPCP 서버가 커피를 끓이도록 한다. 이 목적으로 POST를 사용하는 것은 더 이상 사용되지 않는다. 크림, 우유, 바닐라, 라즈베리, 위스키, 아쿠아비트 등 선택적 추가 사항을 지원하는 새로운 HTTP 요청 헤더 필드 "Accept-Additions"가 제안된다.GETHTCPCP 서버에서 커피를 "검색"한다.PROPFIND커피에 대한 메타데이터를 반환한다.WHEN"언제"라고 말하면 HTCPCP 서버가 커피에 젖을 붓는 것을 멈추게 한다 (해당하는 경우).

또한 세 가지 오류 응답을 정의한다.
 상태 코드  정의HTCPCP 서버가 어떤 이유로 요청된 추가를 제공할 수 없다. 응답은 사용 가능한 추가 목록을 나타내야 한다. RFC는 "실제로 대부분의 자동 커피 포트는 현재 추가를 제공할 수 없다"고 언급한다.HTCPCP 서버는 찻주전자이다. 결과 엔티티 본문은 "짧고 굵을 수 있다" (노래 "I'm a Little Teapot"에 대한 참조). 이 동작의 시연이 존재한다.Mozilla 개발자 문서에 따르면, 커피/차 포트가 일시적으로 커피가 없는 경우, 끓여달라는 요청을 받으면 대신 503을 반환해야 한다.

Save 418 운동
2017년 8월 5일, IETF HTTPBIS 워킹 그룹의 의장 마크 노팅엄은 Node.js 플랫폼에서 상태 코드 418 "I'm a teapot"의 제거를 요구했다. 이 코드는 하이퍼텍스트 커피 포트 제어 프로토콜에 설정된 원래 418 "I'm a teapot"을 참조하여 구현된 코드이다. 2017년 8월 6일, 노팅엄은 프로그래밍 언어 Go와 그 다음으로 파이썬의 Requests 및 ASP.NET의 HttpAbstractions 라이브러리에서 418 "I'm a teapot"에 대한 참조를 제거할 것을 요청했다.

이에 대한 응답으로, 15세 개발자 셰인 브런즈윅은 save418.com 웹사이트를 만들고, "Save 418 Movement"를 설립하여, 다양한 프로젝트에서 418 "I'm a teapot"에 대한 참조가 "컴퓨터의 기본 프로세스가 여전히 인간에 의해 만들어진다는 것을 상기시킨다"고 주장했다. 브런즈윅의 사이트는 게시 몇 시간 만에 입소문이 퍼져 소셜 플랫폼 레딧에서 수천 개의 찬성표를 얻었으며, 그가 사이트에서 소개한 "#save418" 트위터 해시태그의 대량 채택을 이끌었다. 대중의 반발에 귀 기울여, Node.js, Go, 파이썬의 Requests, 그리고 ASP.NET의 HttpAbstractions 라이브러리는 각각의 프로젝트에서 418 "I'm a teapot"을 제거하지 않기로 결정했다. 앞서 언급된 프로젝트들과 일반 대중의 만장일치 지지는 노팅엄이 418을 예약된 HTTP 상태 코드로 표시하는 절차를 시작하도록 유도했으며, 예측 가능한 미래에 418이 공식 상태 코드로 대체되지 않도록 보장했다.

2020년 10월 5일, 파이썬 3.9가 418 IM_A_TEAPOT 상태 코드를 포함한 업데이트된 HTTP 라이브러리와 함께 출시되었다. 해당 풀 요청에서는 Save 418 운동이 채택을 지지하는 직접적인 근거로 인용되었다.

 사용 
상태 코드 418은 요청을 차단할 때 서버에서 때때로 반환되며, 더 적절한 403 금지 또는 404 찾을 수 없음 대신 사용된다.

2022년 러시아의 우크라이나 침공 당시, 러시아 연방군 웹사이트 mil.ru는 러시아 외부에서 접속할 때 DDoS 공격 보호 조치로 HTTP 418 상태 코드를 반환했다. 이 변경 사항은 2021년 12월에 처음 확인되었다.

 같이 보기 
 트로이 목마 방 커피 포트
 사물인터넷

 유타 주전자

 각주 

 외부 링크 
 구글 데모 페이지: Error 418 (I'm a teapot)!?
 데이비드 스키너의 Package teapot HTCPCP-TEA 구현
 save418.com
 error418.net 

분류:컴퓨터 유머
분류:컴퓨터 오류
분류:응용 계층 프로토콜
분류:RFC
분류:만우절 농담