#冷知識 其實我是個茶壺……(內有貓貓)

除了開箱各種科技產品,我也喜歡蒐集冷知識,覺得可以分享一些給大家。既然是工程師,就從一些工程師的冷知識開始好了。 今天分享的內容,對軟體工程師來說可能不是冷知識,因為它算是惡搞 RFC 裡最著名的一個,那就是「超文字咖啡壺控制協定」。 如果你不知道那是什麼,請聽我娓娓道來。
imgur
▋ HTTP 狀態碼 HTTP 是你我日常都會接觸到的東西,至少你應該在網址開頭看過它。做 HTTP 請求的時候,比如你點開了一個網頁,網頁伺服器會回傳一個數字,那個數字就是「狀態碼」。 最廣為人知的狀態碼應該就是「404 Not Found」,因為早期網頁(也許現在有些也是)碰上找不到內容的時候,會直接顯示「404 找不到」。 (之前出國到了旅館正好分到 404 號房,然後看見這樣的景象)
imgur
但其實這類狀態碼還有很多,例如正常情況的「200 OK」,代表請求成功;但對一般使用者來說,看到的就是預期的網頁的內容,所以就少了點存在感。 這部分真要解釋的話可能會枯燥,所以我決定直接放貓貓。 400 請求錯誤
imgur
401 沒有權限
imgur
404 找不到
imgur
406 無法接受
imgur
409 發生衝突
imgur
414 URI 太長
imgur
417 預期結果失敗
imgur
426 需要升級
imgur
429 過多的請求
imgur
500 伺服器錯誤
imgur
所有的貓貓們來自這裡:
貓貓們看起來很萌,但這些代碼都是工程師會用到的正經規格。 不過…… 規格裡有個 418 「我是茶壺」是怎麼回事?
imgur
▋ 超文字咖啡壺控制協定 故事發生在 1998 年 4 月 1 日,網際網路國際標準機構 IETF 發佈了「RFC 2324 標準」,定義了「超文字咖啡壺控制協定」(HTCPCP);至於是怎麼一回事,看日期應該能知道。 這個協定被設計為一個類似 HTTP 的協定,可以用於控制、監測和診斷咖啡壺。 技術上來說,HTCPCP 是 HTTP 協定的擴充。HTCPCP 請求通過 URI 架構 `coffee:` 來參照,並還包含了這幾種 HTTP 請求: - BREW 或 POST:請求咖啡伺服器煮咖啡。 - GET:從伺服器取得咖啡。 - PROPFIND:取得咖啡的 metadata。 - WHEN:讓伺服器停止向咖啡中加入牛奶(如適用)。 而這個協定也定義了兩種伺服器回覆的錯誤狀態碼: - 406 無法接受:咖啡伺服器由於某種原因而暫時不能煮咖啡。 - 418 我是茶壺:這是當一個茶壺被下達煮咖啡指令時的回覆。 ▋ 看似玩笑卻又認真(嗎) 雖說這個協定看起來單純是個玩笑,但官方每次推出愚人節玩笑,都會讓這個協定看上去像是一個真的、非虛構的協定,以至於它跟其他認真的規格一樣,被記載在工程師會看見的各式規格書中。 也曾經有人提出 bug 回報,抱怨說 Mozilla 不支援這個協定。
imgur
▋ 後續發展 在 2014 年 4 月 1 日,發布了 RFC 7168,是此協定的擴充,正式支援茶壺。(還來啊) —————————— 如果你喜歡這篇文章,請點一下愛心及右上角的追蹤按鈕! 追蹤我的 Instagram:
看更多文章:
https://dcard.tw/@hiking

dcard.tw
https://dcard.tw/@hiking
愛心哈哈
72
留言 6
文章資訊