HTTP サーバー/クライアントを作成するとします。HTTP/1.0 をサポートすることはどれほど重要ですか? 今でもどこかで使われていますか?
編集: HTTP/1.0 の有用性/重要性についてはあまり関心がありません。むしろ、実世界 (ブラウザー、ロボット、スマートフォン/愚かな電話など...)。
HTTP サーバー/クライアントを作成するとします。HTTP/1.0 をサポートすることはどれほど重要ですか? 今でもどこかで使われていますか?
編集: HTTP/1.0 の有用性/重要性についてはあまり関心がありません。むしろ、実世界 (ブラウザー、ロボット、スマートフォン/愚かな電話など...)。
wget
HTTP/1.0 を使用しており、まだ比較的人気があります (ただし、Host:
仮想ホストにアクセスするために必要なヘッダーなど、いくつかの HTTP/1.1 機能をサポートしています)。
かなりの数のサーバーが意図的に HTTP/1.0 応答を返します。これは、一部の (古い) ブラウザーが、HTTP/1.1 の永続的な接続に課せられた 2 接続制限よりも高い接続制限を HTTP/1.0 サーバーに許可するためです。
しかし、一般に、ほとんどの「HTTP/1.0」実装は実際には HTTP/1.1 実装のわずかに制限されたバージョンであり、多くの HTTP/1.1 実装はそのバージョンの一部の機能 (特にパイプラインなど) を実際にはサポートしていません。
他の目的のためにこれを自分で調べます:
「HTTP/1.0は、プロキシ、一部のモバイルクライアント、およびプロキシを使用するように構成されたIEで使用されています。したがって、1.0は、Web全体のトラフィックの重要な割合を占めているようです。...はい、多くあります。 1.0クライアントはまだそこにあります。」
出典(2009年7月):http://groups.google.com/group/erlang-programming/msg/08f6b72d5156ef74
:-(
更新(2011年3月):
クライアント/サーバーを構築する場合は、クライアントにHTTP / 1.1を使用させ、サーバーに1.1と1.0の両方を受け入れさせる。Web開発を行う場合、どのサイトをロードするかを知る方法がないため、クライアントがHostヘッダーなしでページをロードしようとするのはPITAです:-Sしたがって、そのようなクライアントを構築しない方がよいでしょう。 ;-)
接続を確認したり、機能していない理由を突き止めたりするために、サーバーに telnet 接続するときに常に使用しています。
$ telnet 192.168.1.1 80
GET / HTTP/1.0\r\n
\r\n
...
(1.0 リクエストを作成するために追加のヘッダーを提供する必要がないため)。
HTTP/1.0 は、1.1 で必要とされるパイプライン処理やその他の複雑な処理など、1.1 のすべての処理のオーバーヘッドを必要としない非常に基本的なクライアントを作成する場合に非常に重要です。リクエストを投稿してレスポンスを取得し、切断するためのコーディングは非常に簡単です。これは、HTTP プロトコルの実装ではなく、アプリケーションの機能をテストするだけのサーバーのテスト ケースを作成する場合に役立ちます。
より洗練された 1.1 実装のスペースや必要性がないため、1.0 を使用するモバイル ブラウザーやアプリケーションが多数あります。また、非スマートフォンでの非 3G 接続の遅延の問題により、1.1 機能の利点が完全に無効になります。
クライアントの要求に関係なく、すべてを 1.0 に劣化させるプロキシも多数あり、IE の問題があります。
簡単に言えば、汎用 HTTP サーバーの場合、1.0 は非常に適切です。
IME は、真の HTTP/1.0 要求を見てからかなりの時間が経ちました。(モバイル デバイスの fuzzylolipop を含む)。
プロキシ経由で接続する場合、MSIE はデフォルトで HTTP/1.0 にダウングレードする (ふりをする) ため、本当の要求を言います (すべての送信要求は HTTP/1.0 としてフラグが立てられます)。 HTTP/1.1 固有の要求ヘッダーを使用し、すべての HTTP/1.1 応答を尊重します。
不思議なことに、ミラー イメージの IIS は喜んで HTTP バージョンを無視します (ただし、MSIE ユーザー エージェントに対してのみこれが行われるかどうかを確認するために、これについてあまり実験していません)。
したがって、偶然にも、MSIE と IIS は、標準準拠のツールよりもプロキシを使用したほうがはるかにうまく機能します。
C.