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

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

WBOY
WBOYオリジナル
2016-06-23 13:46:041480ブラウズ

PHP を使ってファイルをダウンロードする方法を学んでいたとき、教科書には 3 つの http メッセージ ヘッダーを提供する必要があると書かれていました:

	header("Content-type: application/octet-stream");          //高速浏览器传递的是文件流	header("Accept-Length: 2048");                             //文件大小	header("Content-Disposition: attachment; filename=abc.txt"); //指定文件名


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

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


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


私の質問は:
1. これら 2 つのページにはメッセージ ヘッダーがありません。ファイルはまだ正常にダウンロードできますか?
2. 指定したファイルサイズは 2048 バイトですが、実際の出力は「123」の 3 バイトだけですが、なぜファイルは正常にダウンロードできますか?
「Accept-Length」メッセージ ヘッダーは構成可能ですか?

http を学んだばかりです。私が理解していないので、より深い概念を紹介しないで、私の質問に答えてください。 。
ありがとうございます! :)


ディスカッションへの返信 (解決策)

それは Accept-Length ではなく、Content-Length です
誰が Accept-Length を使用するように誤解させたのかわかりません RFC 標準にはそのようなヘッダーはありません。 。

それは Accept-Length ではなく、Content-Length です
誰が Accept-Length を使用するように誤解させたのかわかりません。RFC 標準にはそのようなヘッダーはありません。



そうですね、ヒントをありがとう!
私の質問に答えるのを手伝ってくれませんか?

1. どちらのページにもメッセージ ヘッダーがありませんが、それでもファイルを正常にダウンロードできるのはなぜですか?

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

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

Accept-Length は、許容される文字列の最大長を意味します。したがって、設定してもしなくても構いません。

1. これら 2 つのページにはメッセージ ヘッダーがありませんが、それでもファイルを正常にダウンロードできるのはなぜですか?

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

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

Accept-Length は、許容される文字列の最大長を意味します。したがって、設定してもしなくても構いません。



はい、わかりました、ありがとう相棒!

悪くない、たくさんのことを学びました。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。