HTTP チュートリアル
HTTPを使い始める
サーチ…
備考
HTTP( Hypertext Transfer Protocol )は、クライアント要求/サーバー応答モデルを使用します。 HTTPはステートレスなプロトコルです。つまり、複数のリクエストの間、各ユーザーの情報やステータスを保持する必要はありません。ただし、パフォーマンス上の理由から、TCPの接続レイテンシの問題を回避するために、永続接続、並列接続、またはパイプライン接続などの技術を使用できます。
バージョン
バージョン | ノート) | リリース予定日 |
---|---|---|
HTTP / 0.9 | 「実施されたまま」 | 1991-01-01 |
HTTP / 1.0 | HTTP / 1.0の最初のバージョン、それをRFCに入れなかった最後のバージョン | 1992-01-01 |
HTTP / 1.0 r1 | HTTPの最初の公式RFC | 1996-05-01 |
HTTP / 1.1 | 接続処理の改善、名前ベースの仮想ホストのサポート | 1997-01-01 |
HTTP / 1.1 r1 | あいまいなキーワードの使用法をクリーンアップしました。メッセージフレーミングの問題が修正されました。 | 1999-06-01 |
HTTP / 1.1 r2 | 主要なオーバーホール | 2014-06-01 |
HTTP / 2 | HTTP / 2の最初の仕様 | 2015-05-01 |
HTTPリクエストとレスポンス
HTTPは、WebブラウザなどのHTTPクライアントがHTTP要求をネットワーク経由でHTTPサーバに送信し、HTTPサーバからクライアントにHTTP応答を返す方法を示します。
HTTPリクエストは、通常、ウェブページやイメージなどのオンラインリソースに対する要求であるが、フォームに入力されたデータなどの追加情報も含むことができる。 HTTP応答は、通常、ウェブページまたは画像などのオンラインリソースの表現である。
HTTP / 1.0
HTTP / 1.0はRFC 1945に記述されています 。
HTTP / 1.0には、仮想ホストのHost
ヘッダーなど、今日、事実上Web上で必要とされる機能はいくつかあります。
しかし、HTTPクライアントとサーバは、HTTP / 1.1プロトコルの実装が不完全( チャンク転送エンコーディングやパイプライン処理なしなど)の場合や、パフォーマンスがパフォーマンスよりも重要と考えられる場合にHTTP / 1.0を使用すると宣言していることがあります(例:ローカルプロキシサーバー)。
GET / HTTP/1.0
User-Agent: example/1
HTTP/1.0 200 OK
Content-Type: text/plain
Hello
HTTP / 1.1
HTTP / 1.1は、もともとRFC 2616(プロトコル)とRFC 2617(認証)の1999年に指定されていますが、現在は廃止されており、参照として使用すべきではありません。
RFC2616を使用しないでください。ハードドライブ、ブックマークから削除し、印刷されたコピーをすべて焼く(または責任を持ってリサイクルする)。
今日のHTTPの実装方法と一致するHTTP / 1.1の最新仕様は、新しいRFC 723xにあります:
- RFC 7230:メッセージの構文とルーティング
- RFC 7231:セマンティクスと内容
- RFC 7232:条件付き要求
- RFC 7233:範囲要求
- RFC 7234:キャッシング
- RFC 7235:認証
HTTP / 1.1が追加されました。
- サーバーが未知のサイズの応答を確実に送信することを可能にするチャンク転送符号化、
- 永続的なTCP / IP接続(HTTP / 1.0では非標準拡張)
- ダウンロードを再開するために使用される、
- キャッシュ制御。
HTTP / 1.1では、HTTPクライアントが応答を待たずに複数の要求を一度に送信することで、要求 - 応答の待ち時間を短縮することを可能にするパイプライン化を導入しようとしました。残念ながら、この機能は一部のプロキシでは正しく実装されていないため、パイプライン接続によって応答が破棄されたり並べ替えられたりします。
GET / HTTP/1.0
User-Agent: example/1
Host: example.com
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 6
Connection: close
Hello
HTTP / 2
HTTP / 2( RFC 7540 )は、単純なテキストベースの要求と応答ヘッダーからフレームで送信されるバイナリデータ形式にHTTPのオンザフライ形式を変更しました。 HTTP / 2はヘッダー( HPACK )の圧縮をサポートしています。
これにより、要求のオーバーヘッドが削減され、単一のTCP / IP接続で複数の応答を同時に受信できるようになりました。
データフォーマットの大きな変更にもかかわらず、HTTP / 2は依然としてHTTPヘッダーを使用しており、要求と応答はHTTP / 1.1と2の間で正確に変換できます。
HTTP / 0.9
存在するHTTPの最初のバージョンは0.9で、しばしば「 HTTP As Implemented 」と呼ばれます 。 0.9の一般的な説明は、「完全なHTTP [ie 1.0]プロトコルのサブセット」です。しかし、これは0.9と1.0の間の能力の格差を説明することができません。
0.9の機能ヘッダーでの要求も応答もありません。要求は、単一のCRLFで終了するGET
行と、スペースと、要求されたリソースURLで構成されます。応答は単一のHTML文書であると予想されます。前記文書の終わりは、接続サーバ側を削除することによってマークされる。操作の成功または失敗を示す機能はありません。インタラクティブなプロパティは、 <isindex>
HTMLタグに密接に関連する検索文字列だけです。
HTTP / 0.9の使用は今日では非常にまれです。 tftpの代替として組み込みシステムで時折見られます 。