흔히 우리가 말하는 에러코드는 HTTP 상태코드를 의미합니다.
상태코드는 3자리 수로 이루어져 있으며 첫번째 숫자는 1 ~5로 이루어져 있습니다.
HTTP 상태코드를 보면 특이한 설명이 보입니다.
"418 에러 - I'm a teapot - 서버는 커피를 찻 주전자에 끓이는 것을 거절합니다."
찻 주전자? 서버 응답, 리소스, 권한 하는 가운데
갑자기 찻 주전자? 이게 뭐람?
굉장히 특이한 에러인듯 해서 호기심에 인터넷을 뒤져보았다.
잘못 기록되었는지, 숨겨진 의미가 있는지 찾아보았으나 결론은 만우절 장난이였다.
국제 인터넷 표준화 기구 (Internet Engineering Task Force, IETF)
어디서부터 어떻게 시작된 만우절 장난인지 알아보려면 먼저 국제 인터넷 표준화 기구에 대해 알아야 한다.
국제 인터넷 표준화 기구 (Internet Engineering Task Force, IETF)는 전세계에 통용되는
인터넷에 대한 표준, 명세 등을 정의하는 단체이다.
국제 인터넷 표준화 기구(IETF)에서 매년 만우절에 장난스러운 RFC를 출판하고 있다.
(매년 만우절을 위한 논문을 쓴다고 생각하면 된다.)
그렇게 출판된 RFC중 1998년에 RFC2324를 출판하는데
그 내용에 418 I'm a teapot이 기록되어 있는 것이다.
RFC2324 - HTCPCP (Hyper Text Coffee Pot Control Protocol)
RFC2324의 주제가 커피주전자용 프로토콜인 HTCPCP이다.
이는 HTTP 프로토콜을 기반으로 만들어졌으며,
클라이언트 - 커피서버 - 커피포트 사이의 통신을 관리하는 프로토콜이다.
커피포트 프로토콜은 HTTP 프로토콜과 동일하게 메소드, 헤더, 상태코드가 존재한다.
HTCPCP 메소드
메소드 | 설명 |
BREW | 커피포트를 조절하기 위한 명령을 서버로 전달 -> 커피 끓이기 커피포트는 커피를 끓이는데 불(fire)이 필요없기 때문에 방화벽(firewall) 설정이 필요가 없다 POST 메소드로도 동일한 동작을 지원하나 더 이상 사용하지 않는다 |
GET | 커피를 서빙한다 > URI 리턴 |
PROFIND | 커피의 메타데이터를 조회한다 |
WHEN | 커피를 언제까지 끓이지, 우유를 언제 넣은지 등에 대한 시기를 설정한다 |
HTCPCP 헤더
커피를 주문할 때 헤더에 추가적인 요구사항을 같이 전달한다. 이때 사용되는 헤더는 Accept-Additions이다.
사용할 수 있는 헤더 타입 | 설명 |
우유타입 milk-type | 크림(Cream), 반반(Half-and-half), 많이(Whole-milk) 등 |
시럽타입 syrup-type | 바닐라(Vanilla), 아몬드(Almond), 라스베리(Raspberry), 초콜릿(Chocolate) |
알콜타입 alcohol-type | 위스키(Whisky), 럼(Rum), 칼루아(Kahlua), 아쿠아비트(Aquavit) |
HTCPCP 상태코드
상태코드 | 성명 |
406 Not Acceptable | 요청을 수행할 수 없거나 추가적인 요구사항을 만족할 수 없을 때 나타나는 코드 |
418 I'm a teapot | 찻주전자가 커피를 끓여달라는 요청을 받았을 때의 코드 |
※ 참고
www.google.com/teapot 주소창에 입력하시면 418 에러를 보실 수 있습니다.
출처 : RFC, https://haneepark.github.io/2019/12/24/418-im-a-teapot/
'Programing > Error' 카테고리의 다른 글
HTTP 상태 코드 (4xx, 5xx) (0) | 2022.12.20 |
---|---|
HTTP 상태 코드 (1xx, 2xx, 3xx) (0) | 2022.12.20 |
418 에러 - I'm a teapot (0) | 2022.12.07 |
JavaScript 에러(not defined) (0) | 2021.09.13 |
MySQL 에러 (DB 접근) (0) | 2021.08.11 |