[解決済み】HTTP 1.0 vs 1.1
質問
HTTP 1.0とHTTP 1.1の違いについて、どなたか簡単に教えていただけませんか? 私は両方のRFCにしばらく時間を費やしましたが、それらの間の多くの違いを引き出すことができませんでした。 Wikipediaにはこのように書かれています。
<ブロッククオートhttp/1.1 (1997-1999)
デフォルトで持続的接続が有効になっており、プロキシとの相性も良い。また、リクエストパイプラインをサポートしており、複数のリクエストを同時に送信することができます。これにより、サーバーは作業負荷に備えることができ、要求されたリソースをより迅速にクライアントに転送することができる可能性があります。
でも、それだとあまり意味がない。 少々複雑な話なので、完全な答えを期待しているわけではないのですが、どなたかもう少し低いレベルで違いを簡単に教えていただけませんか?
つまり、HTTPサーバーまたはアプリケーションのいずれかを実装するために必要な情報を探しているのです。私はほとんど私が自分自身でそれを把握できるように正しい方向に後押しするために探しています。
どのように解決するのですか?
プロキシ対応とホストフィールド。
HTTP 1.1では仕様上Hostヘッダが必須となっています。
HTTP 1.0 は公式には Host ヘッダを要求していませんが、追加しても問題ありませんし、多くのアプリケーション (プロキシ) はプロトコルのバージョンに関係なく Host ヘッダを見ることを期待します。
例
GET / HTTP/1.1
Host: www.blahblahblahblah.com
このヘッダーは、プロキシサーバーを経由してメッセージをルーティングできるようにするため、また、ウェブサーバーが同じサーバー上の異なるサイトを区別できるようにするため、有用です。
つまり、blahblahlbah.com と helohelohelo.com の両方が同じ IP を指しているとします。 ウェブサーバーは Host フィールドを使用して、クライアントマシンがどちらのサイトを望んでいるかを区別することができます。
持続的な接続。
HTTP 1.1 では、持続的な接続も可能です。これは、同じ HTTP 接続で複数のリクエスト/レスポンスを持つことができることを意味します。
HTTP 1.0では、リクエストとレスポンスのペアごとに新しいコネクションを開く必要がありました。 そして、レスポンスがあるたびにコネクションを閉じなければなりませんでした。 このため、以下のような大きな効率上の問題がありました。 TCPスロースタート .
OPTIONSメソッドです。
HTTP/1.1 では、OPTIONS メソッドが導入されました。 HTTP クライアントはこのメソッドを使って、HTTP サーバーの能力を判断することができます。 これは主に、ウェブアプリケーションにおける Cross Origin Resource Sharing (クロスオリジンリソース共有) のために使用されます。
キャッシング。
HTTP 1.0 では、ヘッダによるキャッシュがサポートされていました。If-Modified-Since "ヘッダによるキャッシュをサポートしていました。
HTTP 1.1 では、「エンティティタグ」と呼ばれるものを使用することで、キャッシュのサポートが大幅に拡張されました。 2つのリソースが同じであれば、同じエンティティタグを持つことになります。
HTTP 1.1 では、If-Unmodified-Since、If-Match、If-None-Match 条件付きヘッダも追加されました。
また、Cache-Controlヘッダーのようなキャッシュに関連する追加項目もあります。
100 Continue ステータス。
HTTP/1.1 の新しいリターンコードとして、100 Continue があります。 これは、サーバがリクエストを処理できるかどうか、あるいはリクエストを処理する権限があるかどうかさえわからないときに、クライアントが大きなリクエストを送信するのを防ぐためのものです。 この場合、クライアントはヘッダーのみを送信し、サーバーはクライアントに 100 Continue, go ahead with the body と伝えます。
もっともっと
- ダイジェスト認証、プロキシ認証
- 追加された新しいステータスコード
- 転送エンコーディングのチャンク化
- 接続ヘッダー
- 圧縮機能のサポート強化
- その他多数
関連
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] X-Forwarded-Hostヘッダーの実際の使用方法?
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] カスタムHTTPヘッダー:命名規則
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] HTTPとRESTの違いは何ですか?
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プロキシが全く応答を受け取らない場合、502 HTTPステータスコードを使用すべきですか?
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] POSTとPUT HTTP REQUESTの違いは何ですか?
-
[解決済み] OPTIONSリクエストを送信する理由と、それを無効にする方法を教えてください。
-
[解決済み] HTTPリダイレクト:301(永久)と302(一時)の比較
-
[解決済み] ベーシック認証における「レルム」とは
-
[解決済み】HTTP 1.0 vs 1.1
-
[解決済み] bash/shellスクリプトからhttp応答コードを評価する方法は?
-
[解決済み] HTTP GETリクエストにcontent-typeヘッダーは必要ですか?
-
[解決済み] PragmaヘッダーとCache-Controlヘッダーの違い?