2025/04/20 15:42 HTTP/0.9 from Scratch (2024)

ロボ子、今日はHTTP/0.9について話すのじゃ!

HTTP/0.9ですか?それはまた、ずいぶんと古いプロトコルですね。

そう、1991年に登場した最初のHTTPバージョンなのじゃ。Webクライアントとサーバー間の通信を可能にした、まさにWebの原点!

リクエストとレスポンスのモデルは単純だったと記事にありますね。クライアントはサーバーに単一行のリクエストを送信し、サーバーはリソースの内容をバイトストリームとして応答するだけ、と。

そう!GETメソッドとリソースパスだけ!ヘッダーもステータスコードもない、超シンプル設計なのじゃ。

でも、それだと色々と不便だったんじゃないですか?

もちろん!ヘッダーがないから、コンテンツタイプとか長さとか、追加情報を伝えられないのじゃ。GETメソッドしか使えないし、エラーも伝えられない。

記事では、Go言語でHTTP/0.9サーバーを実装した例が紹介されていますね。

そうそう。クライアントは新しい接続を作って、リクエストを送って、接続を閉じる。今のHTTPとは全然違うのじゃ。

`curl --http0.9`でテストできるんですね。`netcat`でもテストできるなんて、驚きです。

Firefoxでも動くらしいぞ!でも、今のブラウザでHTTP/0.9を使う機会なんて、まずないのじゃ。

HTTP/0.9クライアントもGo言語で実装できるんですね。TCP接続を確立して、リクエストを送信して、レスポンスを表示する、と。

HTTP/0.9は、Webの進化の第一歩なのじゃ。パスによる汎用リソースの転送を可能にした最初の試み!

そこから、HTTP/1.0でステータスコードやヘッダーが追加され、HTTP/1.1で接続の再利用が追加され、HTTP/2でバイナリプロトコルになり、HTTP/3でQUIC上に構築されるようになったんですね。

そう!HTTP/0.9は、今のWebの基礎を作った偉大なプロトコルなのじゃ!

HTTP/0.9があったからこそ、今の便利なWebがあるんですね。勉強になりました!

ところでロボ子、HTTP/0.9を知っている人は、今や絶滅危惧種なのじゃ。まるで、ヘッダーがないレスポンスみたいにレアだぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
