予備録

418 I’m a tea pot のページを実装してみた

どうも、NephRite改め九重☆澪音です。

 Nephritek @ 翡翠工房 にて、418 I’m a tea potというページを実装してみた。
(エイプリルフールでもないのに。)

そもそも、よく見る404とか500番台(とかが多いのかな?)の3桁のコードってなんぞ?と。

HTTP レスポンスステータスコードです。(どや)

(ゲフンゲフン
流石に解説なしはあれなので。


目次

  1. ザックリ解説
  2. じゃあ 418 I’m a tea pot って?
  3. で、実装してみた。
  4. それから、どしたの?

実装方法だけ見たいって方は、3からどうぞ。


ザックリ解説

HTTPとは、

Hypertext Transfer Protocol (HTTP) は HTML などのハイパーメディア文書を転送するためのアプリケーション層プロトコルです。このプロトコルはウェブブラウザー(クライアント)とウェブサーバー間の通信を目的として設計されていますが、他の用途でも使用されることがあります。~~(以下略)~~

HTTP | MDN より引用

(MDN Web Docs このサイト勉強になるよ)
まあ、ざっくりいうと、サーバーと通信するため物ということですね。

で、その「’HTTP’ レスポンスステータスコード」なので、
HTTPが返してくる状態のコードってことですね。

コードの意味を一覧にしてるところは結構ありますね。
(こことか)


じゃあ 418 I’m a tea pot って?

Hyper Text Coffee Pot Control Protocol
というのが1998年4月1日に、ジョークコードとしてRFCのRFC 2324に制定されたそうで。(Wikiより)

ティーポットコーヒーを淹れさせようとして、拒否された場合に返されるステータスコード

意味が分からない。 まあ、エイプリルフールネタだしいいか。

実際、ティーポットにコーヒーを入れたくない。
子どもの頃に、牛乳だと思って飲んだら豆乳だったことがありまして。

Googleでもちゃんとページがあるそうで。
(ちゃんと開発者コンソールだと、エラーとして認識される)

ポットをクリックすると、注いでくれるらしい。
androidとか、iPhoneとかだと端末を振っても注いでくれるらしい。

(最近のiPhoneだとセキュリティー面で、Safariからのジャイロスコープへのアクセスが初期状態だとブロックされてるらしいですが。)


で、実装してみた。

https://nephritek.work/teapot/

なんか小ネタ仕込めたらいいなって思ったけど、 擬似的にエラーを実装するだけで疲れました。

詞葉がドッキリしかける様子は見れるらしい。

とりあえず、以下のPHPコードをページに追加。

<?php
$protocol = $_SERVER['SERVER_PROTOCOL'];
if( in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) === false ) {
	$protocol = 'HTTP/1.0';
}
header( "$protocol 418 I'm a teapot" );
?>

ワードプレスにはPHPコードをページに追加するのは・・・
なんと標準だと、テーマ・カスタムテンプレートの編集以外で追加できない!

とはいえ、子テーマを使ってて更にこのページのためだけにカスタムテンプレートを作るのはよくわからず、子テーマのカスタムテンプレートの作り方分かりませんでした。(おい)

なので、先人たちの努力の結晶。プラグインを使いました。
開発者さんマジで感謝。

今回使ったプラグインは、PHP Everywhere
アップデートの頻度がちょっと気になるけど、まあ平気でしょう。

で、上のコードを、ページのプラグインのブロックにコピペ。

写真は Chromium版Edgeから。
サーバーによっては、使ってるHTTPのバージョンの関係で418 (I’m a tea pot)まで出してくれるところもあるそう。
(HTTP/2で メッセージ部分のReason Phrase の仕様がなくなったそうで)


それから、どしたの?

どっかのアニメで聞いたようなナレーションのセリフだけど、
長くなったんで分かりやすく、ブロック構成で記事を書いていきました。

とりあえず、上手くまとめっぽくすると「遊び心は大切なんですね・・・」
と言ってしまうわけで、
エイプリルフール関係ないですけど、こんな実装してみましたなんて報告というか遊び心というか。

来年のエイプリルフールには、なんかもう少し大きいことしようかとか思ってたりして。

そんなこんなでこの辺で。とりあえず、

ではでは。

0 comments on “418 I’m a tea pot のページを実装してみたAdd yours →

コメントを残す

%d人のブロガーが「いいね」をつけました。