請教一下檔案下載時,HTTP響應訊息頭的問題。

來源:互聯網
上載者:User
我在學習利用PHP實現檔案下載的時候,教材說需要提供三個http訊息頭:
header("Content-type: application/octet-stream");          //高速瀏覽器傳遞的是檔案流header("Accept-Length: 2048");                             //檔案大小header("Content-Disposition: attachment; filename=abc.txt"); //指定檔案名稱


其中,“Content-type”和“Content-Disposition”兩個訊息頭,我還是有點不太理解,所以我分別做了兩個例子:

a.php:
  

b.php:
  

我的問題是:
1、這兩個頁面都少一個訊息頭,為什麼還都能成功的下載檔案?
2、我雖然指定的檔案大小是2048個位元組,但是真實輸出的只有“123”三個位元組,為什麼也能正常的下載檔案?
“Accept-Length”訊息頭是可設可不設嗎?

我剛剛學習http,麻煩大家就我問的問題回答,不要引出更深的概念,因為我看不懂。。
十分感謝!:)


回複討論(解決方案)

不是Accept-Length,是Content-Length
也不知道誰誤導大家用Accept-Length的,RFC標準裡沒有這個Header的。

不是Accept-Length,是Content-Length
也不知道誰誤導大家用Accept-Length的,RFC標準裡沒有這個Header的。



嗯,謝謝你的提示!
我的問題能幫我解答一下嗎?

1、這兩個頁面都少一個訊息頭,為什麼還都能成功的下載檔案?

因為你沒有設定Content-Length,預設串連結束時的輸出就是下載內容。

2、我雖然指定的檔案大小是2048個位元組,但是真實輸出的只有“123”三個位元組,為什麼也能正常的下載檔案?“Accept-Length”訊息頭是可設可不設嗎?

Accept-Length的意思是最大可接受字串的長度。所以可設可不設。

1、這兩個頁面都少一個訊息頭,為什麼還都能成功的下載檔案?

因為你沒有設定Content-Length,預設串連結束時的輸出就是下載內容。

2、我雖然指定的檔案大小是2048個位元組,但是真實輸出的只有“123”三個位元組,為什麼也能正常的下載檔案?“Accept-Length”訊息頭是可設可不設嗎?

Accept-Length的意思是最大可接受字串的長度。所以可設可不設。



嗯知道了,謝了哥們!

不錯,學習了。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.