http之206狀態碼


206狀態碼,

大概就是瀏覽器先不下載要下載的文件,而是彈窗告訴用戶,該文件是什么,有多大。由用戶自行決定是否下載。

在html中,加一個a標簽,a標簽的地址是一個文件,就可實現該效果。

具體可參考下面解釋:

 

HTTP/206響應

最后一條會話返回了HTTP/206 “Partial Content”響應.這種響應是在客戶端表明自己只需要目標URL上的部分資源的時候返回的.這種情況經常發生在客戶端繼續請求一個未完成的下載的時候(通常是當客戶端加載一個體積較大的嵌入文件,比如視屏或PDF文件),或者是客戶端嘗試實現帶寬遏流的時候.

你可以通過Range請求頭辨認出一個部分內容請求.該請求頭表明了客戶端需要請求資源的哪一部分:

image

在上圖的請求中,客戶端告訴服務器,它需要該視屏文件中從172,032到13,325,503字節范圍內的數據.

在大多數情況下,客戶端還會發送一些條件請求頭,讓服務器來辨別該返回哪個版本的資源.在上圖的請求中,客戶端把它在上次接收該資源的0到172032字節部分請求中服務器返回的ETag響應頭作為了本次請求的If-Match請求頭發送了出去,同樣還把上次響應中的Last-Modified響應頭用If-Unmodified-Since請求頭發送了出去.

如果服務器發現該資源的版本與客戶端所請求的版本不匹配,則會返回一個HTTP/412 Precondition Failed響應.如果客戶端使用If-Range請求頭而不是If-Match發送了上次收到的ETag響應頭的值,且服務器發現客戶端請求的版本與當前資源的版本不匹配,則服務器會返回整個資源數據.如果客戶端需要完整的資源數據,使用If-Range可以減少一個網絡請求.

服務器的Content-Range響應頭表明了返回的是文件的哪一部分,Content-Length響應頭表明了該部分文件的大小:
image

你也許注意到了Accept-Ranges響應頭,服務器發送這個頭的目的是讓客戶端知道服務器接受以字節為單位的部分內容請求.

如果你在Fiddler中看到了一個HTTP/206響應,但你需要的是一個完整的文件(比如你想保存一個完整的視屏文件),你可以選中該會話按下U鍵,或者按住Ctrl鍵點擊工具欄中的Replay按鈕,執行無條件請求.

 

可參考:

http://blog.163.com/wang_hai_fei/blog/static/30902031201333115425644/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM