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

website = rfc2324 HTCPCP를 구현하는 작동 중인 찻주전자 **하이퍼텍스트 커피 포트 제어 프로토콜**(Hyper Text Coffee Pot Control Protocol, **HTCPCP**)은 커피 포트를 제어, 모니터링 및 진단하기 위한 농담조의 통신 프로토콜이다. 이는 1998년 4월 1일 만우절 RFC로 게시된 2324에 명시되어 있으며, 만우절 장난의 일부이다.access-date=8 May 2012 확장 버전인 HTCPCP-TEA는 2014년 4월 1일 RFC 7168로 게시되어 차 끓이기를 지원하며, 역시 오류 418의 만우절 RFC로 발표되었다.
# 프로토콜
RFC 2324는 래리 마신터가 작성했으며, 그는 이를 풍자라고 설명하며 "이것은 심각한 목적을 가지고 있다 – HTTP가 부적절하게 확장된 많은 방식을 식별한다"고 말했다.archive-date=2013-03-27 프로토콜의 문구는 이것이 완전히 진지하지 않다는 것을 분명히 보여주었다. 예를 들어, "커피를 끓이기 위해 에스프레소처럼 특별히 고안된 프로토콜에 대한 강하고, 진하며, 풍부한 요구 사항이 있다"고 언급한다. 그 기원의 농담적인 성격에도 불구하고, 혹은 아마도 그 때문에, 이 프로토콜은 온라인에서 작은 존재로 남아 있다. 편집기 이맥스는 이 프로토콜의 완전히 기능하는 클라이언트 측 구현을 포함하며,. 모질라의 프로토콜 지원 부족에 대해 불평하는 여러 버그 보고서가 존재한다. 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 메서드에 몇 가지 추가 사항을 포함한다. {| class="wikitable" ! 메서드 !! 정의 |- |valign=top|`BREW` 또는 `POST`||HTCPCP 서버가 커피를 끓이도록 한다. 이 목적으로 POST를 사용하는 것은 더 이상 사용되지 않는다. 크림, 우유, 바닐라, 라즈베리, 위스키, 아쿠아비트 등 선택적 추가 사항을 지원하는 새로운 HTTP 요청 헤더 필드 "Accept-Additions"가 제안된다. |- valign=top |`GET`||HTCPCP 서버에서 커피를 "검색"한다. |- valign=top |`PROPFIND`||커피에 대한 메타데이터를 반환한다. |- valign=top |`WHEN`||"언제"라고 말하면 HTCPCP 서버가 커피에 젖을 붓는 것을 멈추게 한다 (해당하는 경우). |} 또한 세 가지 오류 응답을 정의한다. {| class="wikitable" ! 상태 코드 !! 정의 |- |valign=top|`406 Not Acceptable`||HTCPCP 서버가 어떤 이유로 요청된 추가를 제공할 수 없다. 응답은 사용 가능한 추가 목록을 나타내야 한다. RFC는 "실제로 대부분의 자동 커피 포트는 현재 추가를 제공할 수 없다"고 언급한다. |- |valign=top|`418 I'm a teapot`||HTCPCP 서버는 찻주전자이다. 결과 엔티티 본문은 "짧고 굵을 수 있다" (노래 "I'm a Little Teapot"에 대한 참조). 이 동작의 시연이 존재한다.url-status=dead |- |valign=top|`503 Service Unavailable`||Mozilla 개발자 문서에 따르면, 커피/차 포트가 일시적으로 커피가 없는 경우, 끓여달라는 요청을 받으면 대신 503을 반환해야 한다.language=en-US |}
# Save 418 운동
2017년 8월 5일, IETF HTTPBIS 워킹 그룹의 의장 마크 노팅엄은 Node.js 플랫폼에서 상태 코드 418 "I'm a teapot"의 제거를 요구했다. 이 코드는 하이퍼텍스트 커피 포트 제어 프로토콜에 설정된 원래 418 "I'm a teapot"을 참조하여 구현된 코드이다.url-status=live 2017년 8월 6일, 노팅엄은 프로그래밍 언어 Gourl-status=live와 그 다음으로 파이썬의 Requestsurl-status=live 및 ASP.NET의 HttpAbstractions 라이브러리url-status=live에서 418 "I'm a teapot"에 대한 참조를 제거할 것을 요청했다. 이에 대한 응답으로, 15세 개발자 셰인 브런즈윅은 save418.com 웹사이트를 만들고,url-status = live "Save 418 Movement"를 설립하여, 다양한 프로젝트에서 418 "I'm a teapot"에 대한 참조가 "컴퓨터의 기본 프로세스가 여전히 인간에 의해 만들어진다는 것을 상기시킨다"고 주장했다. 브런즈윅의 사이트는 게시 몇 시간 만에 입소문이 퍼져 소셜 플랫폼 레딧에서 수천 개의 찬성표를 얻었으며,url-status=live 그가 사이트에서 소개한 "#save418" 트위터 해시태그의 대량 채택을 이끌었다. 대중의 반발에 귀 기울여, Node.js, Go, 파이썬의 Requests, 그리고 ASP.NET의 HttpAbstractions 라이브러리는 각각의 프로젝트에서 418 "I'm a teapot"을 제거하지 않기로 결정했다. 앞서 언급된 프로젝트들과 일반 대중의 만장일치 지지는 노팅엄이 418을 예약된 HTTP 상태 코드로 표시하는 절차를 시작하도록 유도했으며,url-status=live 예측 가능한 미래에 418이 공식 상태 코드로 대체되지 않도록 보장했다. 2020년 10월 5일, 파이썬 3.9가 `418 IM_A_TEAPOT` 상태 코드를 포함한 업데이트된 HTTP 라이브러리와 함께 출시되었다.url-status=live 해당 풀 요청에서는 Save 418 운동이 채택을 지지하는 직접적인 근거로 인용되었다.url-status=live
# 사용
상태 코드 418은 요청을 차단할 때 서버에서 때때로 반환되며, 더 적절한 403 금지language=en 또는 404 찾을 수 없음 대신 사용된다.date=2024-10-28 2022년 러시아의 우크라이나 침공 당시, 러시아 연방군 웹사이트 mil.ru는 러시아 외부에서 접속할 때 DDoS 공격 보호 조치로 HTTP 418 상태 코드를 반환했다.language=enlanguage=en 이 변경 사항은 2021년 12월에 처음 확인되었다.Hacker News