TL;DR
1990 年に公開された最初期の HTTP。HTML ドキュメントを要求して取得するだけのプロトコルで、今の HTTP とは互換性がない。後に HTTP/1.0 が出てきたので、それ以前の仕様として /0.9 と呼ばれている。
仕組み
当初の HTTP/0.9
HTML ドキュメントを取得するほかに、フォームと検索の機能があった。HTML の中で <isindex> タグを使うとテキスト入力欄が表示され、検索するとアドレスの末尾に ? と単語(+ 区切り)を付けてリクエストを送る(例: http://example.com/?search+word)。サーバは結果を書いた HTML を作って返す。
一方で、次のようなことはできなかった。
- 1 つのドキュメントしか送れない
- すべての内容が HTML である前提なので、サーバがコンテンツの形式を伝えられない
- 検索以外のリクエストを送れない。新しい文書の送信、更新、削除もできない
- リクエストが正しかったか、サーバが正しく応答できたかを知る方法がない
1992 年版の HTTP/0.9
1992 年に、先に使われていた電子メールやニュースグループのプロトコルを取り込んで、大幅な更新が書かれた。これはまだ HTTP/1.0 ではないが、ほとんど今の HTTP と同じである。
リクエストには、シンプル版(0.9 互換)とフル機能版(1.0 とほぼ同じ)の 2 つの形式があった。フル機能版では、HTTP メソッドと HTTP バージョンを含むリクエスト行と、Host、User-Agent、Accept などのリクエストのフィールドが加わった。レスポンスにも、HTTP バージョンと 3 桁のステータスコードを含むステータス行と、リクエストと同じ形式のフィールドが加わった。
フィールドは電子メールと同じ 名前: 値 の形式である。フィールドとヘッダの呼び方については ヘッダフィールド を参照。
注意点
<isindex> は HTML5 で削除されたので、今は使えない。