0

次の URL を右クリックして [名前を付けて保存] を選択すると、IE はどのようなアクションを実行しますか?

http://www.somesite.com/some_file.zip

「HTTP ダウンロード」のようなものがあると聞きましたが、正確には何ですか?

私の理解では、HTTP はテキストベースのプロトコルですが、さまざまな種類のファイルを転送するためにどのように使用できますか?

私の推測では、URL に [名前を付けて保存] を選択すると、IE (またはその他のブラウザー) がサーバーへの新しい TCP 接続を開き、ファイル転送を行います。HTTP とは何の関係もないはずです。

  • Web ページにアクセスすると、ブラウザは TCP 接続を使用して HTTP 情報と HTML を転送します。
  • IE でファイルをダウンロードすると、ブラウザは TCP を使用してファイル コンテンツを転送します。

本質的には同じで、転送されるものが異なるだけです。

私は正しいですか?ファイルコンテンツを転送するための接続。

4

1 に答える 1

2

HTTP 経由で任意のバイナリ データを転送できます。たとえば、サーバーはContent-Type応答ヘッダーを任意に設定し、任意のデータを応答に書き込むことができます。たとえば、をに設定してから、バイナリ データを応答に書き込むことができContent-Typeますapplication/octet-stream。つまり、IE は Content-Type 応答ヘッダーを分析してコンテンツをダウンロードし、それが表示可能な既知のコンテンツ タイプ (HTML など) である場合はインラインで表示し、そうでない場合はユーザーに次のように促します。それを保存。

HTTP はテキストベースのプロトコルではありません。ヘッダーはテキストにする必要がありますが、リクエスト/レスポンスの本文は任意のバイトにすることができます。それがヘッダーの使用目的です。相手がそれを適切に理解してデコードできるように、本文がどのようにエンコードされているかを正確に示すためです。

TCP と HTTP に関する限り、HTTP は TCP の上にあるプロトコルです。したがって、HTTP を使用する場合、暗黙的に TCP を使用していることになります。これは、TCP である主要な送信メカニズムに対する規約ベースのプロトコルと考えてください。TCP は低レベルです。クライアントとサーバー間の接続を可能にします。HTTP は言語のようなものです。HTTP がない場合、TCP は、異なる言語を話す異なる国からの 2 人がバーで会うようなものです。どうなると思いますか?彼らは言葉を交わすことができなくなります。HTTP は、両者を結びつけ、会話を可能にする共通言語です。TCPは単なるバーです。

于 2012-07-05T15:53:08.380 に答える