์์ฒญ์ status_codes.py
418 I'm a Teapot ์ํ ์ฝ๋๋ฅผ ๊ตฌํํฉ๋๋ค.
์์ค๋ RFC2324, Hyper Text Coffee Pot Control Protocol(HTCPCP/1.0)์ ๋๋ค. ์ ๋ชฉ์ ์ ์ํ์ญ์์ค - HTCPCP/1.0์ HTTP/1.x๊ฐ ์๋๋๋ค.
HTCPCP๋ 4์ 1์ผ Larry๊ฐ ์ฌ๋๋ค์ด HTTP๋ฅผ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋จ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๊ธฐ ์ํ ๋๋ด์ด์์ต๋๋ค. ์์ด๋ฌ๋ํ๊ฒ๋ HTTP ์์ฒด๋ฅผ ๋จ์ฉํ๋ ๋ฐ ์ฌ์ฉ๋์ง๋ ์์ต๋๋ค. ์ฌ๋๋ค์ HTTP ์คํ์์ HTCPCP์ ์ผ๋ถ๋ฅผ ๊ตฌํํ๊ณ ์์ต๋๋ค.
ํนํ HTCPCP 418 I'm a Teapot ์ํ ์ฝ๋์ ๋ํ Node์ ์ง์์ HTTP ์์ ๊ทธ๋ฃน์์ ์ธ์๋ก ์ฌ์ฉ๋์ด ์ค์ ๋ชฉ์ ์ผ๋ก HTTP์์ 418์ ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ํ์ต๋๋ค.
ํ์ฌ ๋ฑ๋ก๋์ง ์์ ์ฌ๋ถ์ 4xx HTTP ์ํ ์ฝ๋๊ฐ ๋ง์ด ์์ง๋ง HTTP์ ์๋ฏธ๋ (๋ฐ๋ผ๊ฑด๋) ์ค๋ซ๋์ ์ง์๋ ๊ฒ์ด๋ฏ๋ก ์ธ์ ๊ฐ๋ ์ด ์ฝ๋ ํฌ์ธํธ๊ฐ ํ์ํ ์ ์์ต๋๋ค.
์์ฒญ์์ 418์ ๋ํ ์ง์์ ์ ๊ฑฐํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค. ์ด๋ HTTP ์ํ ์ฝ๋๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค(์์ฒด ์ ์์ ์ํด์๋). ๋๋ ๊ทธ๊ฒ์ด ์ฌ๋ฏธ์๋ค๋ ๊ฒ์ ์๊ณ , ๋ช๋ช ์ฌ๋๋ค์ด ์ฌ๋ฏธ๋ฅผ ์ํด ๊ตฌํ์ ๋๋๋ฆฐ ๊ฒ์ ์๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ํต์ฌ ํ๋กํ ์ฝ์ ์ค์ผ์์ผ์๋ ์ ๋ฉ๋๋ค. ์ฌ๋๋ค์ ๋นํ์ค ์๋ฏธ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ Node๋ฅผ ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
๊ฐ์ฌ ํด์,
/cc @๋ฃจ์นด์ฌ
BTW, ์ด๊ฒ์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ ์ด์ ์ฌ์ฉํ์ง ์๊ณ ๋ค์ ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ก ์ฐ๊ธฐํ๋ ๊ฒ์ ๊ด์ฐฎ์ต๋๋ค.
๋ฌธ์ ์ ์ฝ๋ ๋ผ์ธ: https://github.com/requests/requests/blob/master/requests/status_codes.py#L55
200 OK์ ๋์ฒด ๋ฒ์ ์ ์ฐธ๊ณ ํ์ธ์: https://github.com/requests/requests/blob/master/requests/status_codes.py#L13
๋ญ. ์ ๋ฅผ ๊ฑฑ์ ํ๊ฒ ๋ง๋๋ ์ ์ผํ ๊ฒ์ ์ ๋์ฝ๋์ ๋ฐฑ์ฌ๋์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์์ฒญ์ ๊ทธ๊ฒ๋ค์ ๋ฐฉ์ถํ์ง ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ต๋๊น?
์๋์, ์ด๊ฒ์ ์ญ๋ฐฉํฅ ์กฐํ ์ ์ฉ์ ๋๋ค. I'm a teapot๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
๊ทธ๋ ๊ด์ฐฎ๋ค. ๋ฌธ์ ๋ ๊ตฌํ์ด _๊ฒฐ๊ตญ_ ๋ฌธ์ ๊ฐ ๋ ์ํ ์ฝ๋์ ์ค์ ์ฌ์ฉ์ ๋ฐฐ์ ํ๋ ์ฆ๊ฑฐ๋ก ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ๋๋ค.
์ ์ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ๋ ผ์๋ https://github.com/nodejs/node/issues/14644 ๋ฐ https://github.com/golang/go/issues/21326 ์ ์ฐธ์กฐ ํ์ญ์์ค .
420 ๋ฐ ์น๊ตฌ์ ๊ฐ์ ๋ค๋ฅธ ์ํ ์ฝ๋๋ฅผ ์ถ๊ฐํ์ง ์๋ ํ ์ ๊ฑฐํด๋ ๋ฉ๋๋ค.
HTTPbin.org๋ ๊ทธ๊ฒ์ ์ ์งํ๊ณ ์์ต๋๋ค :)
๊ฐ๋ณ ์๋ฒ, ๋๋ ๋ ๊ฑฑ์ ํฉ๋๋ค :)
ํ๋ณด๋ฅผ ๋ณด๋ด์ธ์!
ํ์ง๋ง 3.0.0 ๋ธ๋์น์ ๋ํด ๋ง๋ค๋ฉด ์ด๊ฒ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ ๊ฒ์ ๋๋ค.
๊ธฐ๋ค๋ฆฌ๋ค! ์ ๋ http://save418.com (https://github.com/WhataShane/save418) ๋ค์ ์๋ ์ฌ๋์ ๋๋ค. ๋๋ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก 418๊ณผ ๊ฐ์ ๋ฌดํดํ ๊ฐ๊ทธ๋ฅผ ์ฐ์ฐํ ์ ํ๋ ๊ฒ์ ์ฆ๊น๋๋ค. ํ๋ก์ ํธ ๋ง๊ฐ์ผ์ ๋ง์ถฐ์ผ ํ๊ณ ์์ฌ๊ฐ ๋น์ ์๊ฒ ์ผ๋จ์ ์น๋ ๊ฒฝ์ฐ์๋ ์ ๊ฐ์ ๋ฏธ์๋ฅผ ์ง๊ฒ ๋ง๋๋ ๊ทธ๋ฐ ์ข ๋ฅ์ ๊ฒ์ ๋๋ค. ์ฌ๋ฌด์ค ํ๋๊ฐ ๋๋ฌ์ต๋๋ค. ๊ฐ๋ ๊ฒ์ ๋ณด๋ฉด ์ ๋ง ๋ถ๋๋ฌ์ธ ๊ฒ์ ๋๋ค.
418์ ๋ํ ์ฃผ์ฅ์ ์์ฃผ ์ค๋๋ ฅ ์๊ฒ ์์ฝํ Go ์ค๋ ๋์ @romellem ์ ์ธ์ฉ
๋ถ๋ช ํ ํ์๋ฉด, 400 ๋ธ๋ก์ด ๋ค ๋จ์ด์ง๋ฉด 400 ๋ธ๋ก์ ์ ์ฉ์ฑ์ ์กฐ๊ธ ๋ ํ์ฅํ๊ธฐ ์ํด ํ๋์ ์ถ๊ฐ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ์ฃผ์ฅ์ด ์์ต๋๊น?
๋ด๊ฐ ์๋ชป ์ฝ๋ ๊ฒ์ด ์๋๋ผ๋ฉด HTTP ์ํ ์ฝ๋์ 400๊ฐ ๋ธ๋ก์๋ 50๊ฐ ์ด์์ ์ฝ๋๊ฐ ์์ต๋๋ค. 400 ๋ธ๋ก์ ์ฌ์ฉ ๊ฐ๋ฅํ "๊ณต๊ฐ"์ด 50% ์ด์์ธ ๊ฒฝ์ฐ ์ด๊ฒ์ ๊ฒฐ์ฝ ๋ฐ์ํ์ง ์์ ์๋ ์๋ ๋ฌธ์ ์ ๋ํ ์กฐ๊ธฐ ์ต์ ํ์ผ ์ ์์ต๋๋ค(400 ๋ธ๋ก์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋๊ฐ ๋ถ์กฑํจ).
๊ฑฐ์น ๊ฒ ๋ค๋ฆฌ๋ ค๊ณ ํ๋ ๊ฒ์ ์๋์ง๋ง ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ๋ ฅ์ ํตํด ์ฐพ์ ์ ์๋ ์ฌ๋ฏธ์๋ ์์ ๋ถํ์ ๋ฌ๊ฑ์ ์ข์ํฉ๋๋ค. ๋์๊ฒ ๊ทธ๊ฒ์ ์ปดํจํฐ๊ฐ ์ค์ ๋ก ์๋ํ๊ฒ ๋ง๋๋ ๋ชจ๋ ๊ฒ์ด ์ฌ์ ํ ์ธ๊ฐ์ ์ํด ๋ง๋ค์ด์ง๊ณ ๊ทธ ์ธ๊ฐ ์์์ ์์ ๋ถ๋ถ์ ์ ์งํ๋ ๊ฒ์ด ์ข๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค(์ ์๊ฐ์๋). ๊ทํ์ ์ฃผ์ฅ์ ๊ฑด์ ํ๊ณ ๋ ผ๋ฆฌ์ ์ด์ง๋ง ์ด ์์ฒญ๋ ๋ณ๊ฒฝ์ ์์ง๋์ด๋ง ๊ฒฌ๊ณ ์ฑ์ ์ ์ ์์ Go(๋ฐ ์ ์ฌ์ ์ผ๋ก NodeJS)์ "์ฌ๋ฏธ"๋ฅผ ์ฝ๊ฐ ๋จ์ด๋จ๋ฆฝ๋๋ค. ๊ฒฐ๊ตญ์๋ ์ ์ถฉ์์ด ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
(๊ทธ๋๋ ์ญ์ฌ ๊ฐ์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ ๋ ํญ์ 418์ด HTTP/1.x ์ฌ์์ ์ผ๋ถ๋ผ๊ณ ์๊ฐํ์ต๋๋ค. "HTCPCP/1.0" ์ฌ์์ ๋ํด์๋ ๋ชฐ๋์ต๋๋ค. ๐)
์ฌ๋ฏธ์๋ ๋ถํ์ ๋ฌ๊ฑ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค.
์์ฒญ ์์ฒด๋ฅผ ์ฌ๊ฐํ๊ฒ ๋ฐ์๋ค์ด์ง๋ง ๋๋ฌด ์ฌ๊ฐํ์ง๋ ์์ต๋๋ค. :)
์ด๊ฒ์ "๋๋ฌด ์ฌ๊ฐํ๊ฒ"์ ๋ผ์ธ ์ผ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์๋ก์ด RFC๋ก ์์ํ์ฌ ์ฌ์์ ์ผ๋ถ๋ก ๋ง๋๋ ๊ฒ์ด ๋ถ๋ช ํ ๋ต์ด ์๋๋๊น?
@tSavo ๋ถ๋ช ํ!
418์ RFC 7231์ HTTP ์ํ ์ฝ๋ ์ฌ์์ ์ผ๋ถ๊ฐ ์๋์ง๋ง ์ค์ ๋ก ์กด์ฌํฉ๋๋ค. ๊ตฌ๊ธ ์กฐ์ฐจ๋ ์ฌ๊ธฐ ์์ ๊ตฌํ
์ด์ ๋ฅผ ์ฃผ์ธ์.
๋ช
ํํ ํ์๋ฉด, ๋๋จธ์ง ์์ฒญ ํ์ ์๊ฒฌ์ ๋์ํฉ๋๋ค. ์ฌ๊ธฐ์์ 418 ๋งคํ์ ์ ์งํด์ผ ํฉ๋๋ค. (์ฌ๋ฏธ๋ ์์ง๋ง)ํ์ง๋ง ๋์ ์ด์ ๋๋ฌธ์ด ์๋๋ผ ์ฌ๋ฏธ ๋ถํ์ ๋ฌ๊ฑ์ ์์ ์ค์ฉ์ ์
๋๋ค : codes.py
์ฝ๋์ ์ด์ ๋ฌธ๊ตฌ ๋์ ๊ด๊ณ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ์ฃผ์ด์ง ์ฝ๋์ ๋ํด ๋ํ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ชจ๋ ์ด์ ๋ฌธ๊ตฌ๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. ๊ทธ ์๊ฐ I'm A Teapot. ์ด๊ฒ์ด ๋ณ๊ฒฝ๋๋ฉด IANA๊ฐ ํ ๋นํ๋ ๋ค๋ฅธ ๋ฌธ๊ตฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
@mnot , IETF/IANA๊ฐ 418์ ์์ ๋กญ๊ฒ ์ฌ์ฌ์ฉํ๊ณ ์ฐ๋ฆฌ๋ฅผ ๋์ ํ์ฌ ์ฐจ๋จํ์ง ์์์ผ ํ๋ค๋ ์ฝ์์ผ๋ก ์ด ์๋ต์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ์ญ์์ค. ๐ ์ด์จ๋ ์ด์ ๋ฌธ๊ตฌ๋ ์ด๋ฆฌ์์ ๊ฒ ๊ฐ์์.
418 ๋ฑ๋ก ์์ฒญ์ด ๋ฒํธ 979050
ํ์ธ; ์ด๊ฒ์ 418์ ์ฅ์ ์ ๋ํ ํ ๋ก ํฌ๋ผ์ด ์๋๋๋ค. @mnot ์ด์ ๋ํ ํ์ ์กฐ์น๋ฅผ ์ํ์๋ฉด ์ ์๊ฒ ์ด๋ฉ์ผ์ ๋ณด๋ด์ฃผ์ญ์์ค. ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ ์ํด: ๊ทํ์ ์๊ฒฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ์ง๋ง ์ ๋ ์ฐ๋ฆฌ๊ฐ ๋ด๋ฆฐ ๊ฒฐ์ ์ ๋ํด ๋งค์ฐ ๊ธฐ๋ถ์ด ์ข์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
418์ RFC 7231์ HTTP ์ํ ์ฝ๋ ์ฌ์์ ์ผ๋ถ๊ฐ ์๋์ง๋ง ์ค์ ๋ก ์กด์ฌํฉ๋๋ค. ๊ตฌ๊ธ ์กฐ์ฐจ๋ ์ฌ๊ธฐ ์์ ๊ตฌํ