Apache 拒絕分割下載請求…

jasont發表於2010-07-16

前幾天和同事在討論一個問題,使用者若是利用 Flashget 等分割軟體下載檔案,這樣對主機的負擔不是很重,是不是要考慮禁止使用者這樣使用呢?估且先不管使用上的問題,想了一下若是真的要禁止分割下載,該用什麼方式來做呢?

簡單點就是利用 mod_limitipconn 來限制每個 IP 所能同時對各網站的連線數,但若是你設 1 ,就會影響到使用者若一邊下載,不就無法一邊繼續瀏覽網站,這個方式雖然有調整的範圍,但是要這麼累的針對各種情況去做設定,實在是很沒有效率。因此換各方向看,HTTP/1.1 協定本身的 Range ,就是用來提供分割下載的主要部份,Byte Ranges 指的就是整個 Html Body 的某個 sequence,而利用 Range Retrieval Request 向 HTTP Server 請求冇個 Range 的資料,來達到分割下載,所以為了要讓主機不理會或處理這種請求,可以使用 ,,利用 mod_header 設定 Header unset Accept-Ranges 不送這個 Header,或是 Header set Accept-Ranges: none 來將它設為 none。這樣一來 Http Server 本身就不會再處理這種分割下載的請求,但也不會影響使用者一般網站瀏覽的動作了。

Http/1.1 中 Range 的部份可以參考 RFC 。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/137197/viewspace-1035330/,如需轉載,請註明出處,否則將追究法律責任。

相關文章