ホームページ  >  記事  >  バックエンド開発  >  ファイルをダウンロードする際のHTTPレスポンスヘッダについて教えてください。

ファイルをダウンロードする際のHTTPレスポンスヘッダについて教えてください。

WBOY
WBOYオリジナル
2016-06-13 12:09:261153ブラウズ

ファイルをダウンロードする際のHTTPレスポンスヘッダについて教えてください。

この投稿は love_u_qt によって最終編集されました: 2012-08-05 15:08:30 私が PHP を使ってファイルをダウンロードする方法を学んでいたとき、教科書には 3 つの http メッセージ ヘッダーを提供する必要があると書かれていました。 :
<br />	header("Content-type: application/octet-stream");          //高速浏览器传递的是文件流<br />	header("Accept-Length: 2048");                             //文件大小<br />	header("Content-Disposition: attachment; filename=abc.txt"); //指定文件名<br />


このうち、「Content-type」と「Content-Disposition」の 2 つのメッセージ ヘッダーがまだ理解できないので、それぞれ 2 つの例を作成しました:

a .php:
<br /><?php<br /><br />	header("Content-type: application/octet-stream");<br />	header("Accept-Length: 2048");	<br /><br />	echo 123;<br />


b.php:
<br /><?php<br /><br />	header("Accept-Length: 2048");<br />	header("Content-Disposition: attachment; filename=abc.txt");	<br /><br />	echo 123;<br />


私の質問は次のとおりです:
1. 両方のページにメッセージ ヘッダーがありません。 , ファイルが正常にダウンロードできるのはなぜですか?
2. ファイルサイズは 2048 バイトですが、実際の出力は「123」の 3 バイトだけですが、なぜ正常にダウンロードできますか?
「Accept-Length」メッセージ ヘッダーはオプションですか?

http を学んだばかりです。理解できないので、より深い概念を導入しないで、質問に答えてください。 。
ありがとうございます! :)
------解決策のアイデア----------------------
1.メッセージ ヘッダーが 1 つ欠落している場合、なぜファイルは正常にダウンロードできるのでしょうか?

Content-Length を設定していないため、接続終了時のデフォルトの出力はダウンロードされたコンテンツです。

2. 指定したファイルサイズは 2048 バイトですが、実際の出力は「123」の 3 バイトしか正常にダウンロードできないのはなぜですか? 「Accept-Length」メッセージヘッダーはオプションですか?

Accept-Length は、許容可能な文字列の最大長を意味します。したがって、設定してもしなくても構いません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。