當我們右鍵點擊下面的URL並選擇「另存爲」時,IE會採取什麼行動?當我們右鍵單擊URL並在IE中選擇「另存爲」時會發生什麼?
http://www.somesite.com/some_file.zip
我聽說過類似「HTTP下載」的東西,究竟是什麼?
我的理解是,HTTP是一種基於文本的協議,它如何被用來傳輸不同種類的文件?
我的猜測是,當我們選擇另存爲URL時,IE(或任何其他瀏覽器)將打開一個到服務器的新TCP連接並進行文件傳輸。它應該與HTTP無關。
- 當我們訪問一個網頁時,瀏覽器使用TCP連接來傳輸HTTP 信息和HTML。
- 當我們在IE下載文件時,瀏覽器使用TCP傳輸文件內容。
它本質上是一樣的,只是在轉移的東西上有所不同。
對嗎? 連接到傳輸文件內容。
生動而令人印象深刻!感謝您的回答。我認爲瀏覽器應該能夠識別它在響應主體中收到的字節的含義/格式。因爲我嘗試過,我使用** Response.WriteFile(「test.png」)來創建響應**,並且我沒有指定任何響應頭,IE仍然能夠識別png格式並正確顯示圖片。它不會提示我下載png文件。 – smwikipedia 2012-07-09 02:39:07
IE是一個特別的野獸。如果沒有Content-Type響應頭,它會使用啓發式方法通過查看前幾個字節並嘗試匹配一些衆所周知的類型來猜測類型。例如,可以通過查看標題來識別所有圖像格式。儘管依賴於它是不好的做法,因爲其他瀏覽器可能無法正確顯示它。 – 2012-07-09 05:55:54
因此,當HTTP響應到達瀏覽器時,響應看起來像一些ASCII格式的HTTP頭,然後是任意字節**。並且IE會猜測像內容類型頭文件這樣的線索,或者只是嘗試在任意字節中查找某種文件格式的幻數。你能指點我一些有關HTTP協議如何與各種瀏覽器真正起作用的參考嗎?也許這是一個過度的要求。如果有的話,我會真的apprecaite。 – smwikipedia 2012-07-09 06:50:48