HTTP0.9:
最も単純なのは、GET行のGET index.htmlのみです。
HTTP1.0:
- リクエストヘッダーとレスポンスヘッダーを追加して、リクエストとレスポンスを明確にする
- ステータスコードを増やして、応答をより明確にします
- キャッシュ機能を増やすと、要求されたコンテンツが再度要求されたときに直接キャッシュを使用できます
GET index.html HTTP / 1.0
accept:application / html
accept-charset:utf-8
accept-encoding:gzip
accept-language:zh-CN
HTTP / 1.0 200 OK <!DOCTYPE html > < html > < head > </ head > < body > hello world!</ body > </ html >
- ファイル形式の問題を解決します。jsonかhtmlですか、ブラウザはさまざまなファイル形式に従ってファイルを解析します
- accept-charsetはファイルエンコーディングの問題を解決し、文字ストリームをバイトストリームに解析する方法をブラウザに指示します
- accept-encodingは大きなファイルの圧縮の問題を解決し、ブラウザは指定された解凍方法を使用して解凍します
- accept-languageは国際化の問題を解決し、さまざまな国がさまざまな言語のドキュメントを要求します
HTTP1.1
- 永続的な接続、複数のhttp要求が同じTCP接続を使用するため、TCP接続確立のオーバーヘッドが削減されます
- キューブロッキングの問題を解決するために、クライアントとサーバー間に複数のTCP接続を確立できます。
- コンテンツ全体を一度に送信せずに、応答本文をチャンクで送信できます
- 応答ヘッダーに追加されたcontent-lengthフィールドは、動的コンテンツが一度に長さを計算できず、一度に送信を完了できないという問題を満たします
- 追加されたセキュリティメカニズムとCookieメカニズム
HTTP2.0
多重化、クライアントとサーバー間で1つのtcpのみが確立され、各http要求が複数のフレームに分割され、複数のhttpフレームが混合されてtcp接続で送信されます
HTTP3.0は
tcpを強制終了します。これは、tcpが引き続き送信され、順次受信され、キューの先頭にまだ問題があるためです。tcpを強制終了すると、キューの先頭の問題を解決できますが、これは単なる夢です