讀《HTTP: The Definitive Guide》前三章有感

《HTTP: The Definitive Guide》中文翻譯是《HTTP權威指南》,而且有人推薦,於是就拿來讀下。

前三章主要介紹HTTP的基本結構。自從HTTP 0.9版本之後,採用request/response這種框架,也就是我們平時所說的client/server。

request/server都由三部分組成,一是startline,二是header fields,三是entity body(data)。當然二者還是存在差異的,具體內容見書。

我這裏想到的問題是,現在互聯網上廣告越來越多,也越來越猖獗,圖片,flash,還有視頻開始之前的廣告等等。有攻就有防,各類廣告屏蔽軟件也是層出不窮。有的是以瀏覽器插件的形式存在的,像adblock在chrome和firefox上都可以用,有的是以應用軟件的形式存在的,像adsafe,前一段時間還出了愛奇藝狀告adsafe的新聞。

我之前用過手機端的opera瀏覽器,號稱可以省流量,現在用的是小米的系統瀏覽器,可以智能無圖。在讀本書之前,以爲他們是同樣接收了圖片數據,只是將其屏蔽,沒有顯示到屏幕上而已,因爲有的屏蔽廣告程序,確實存在廣告一閃而過的情況,既然這樣,他們所宣傳的省流量功能也就無從說起。

讀了本書之後,我通過看header fields裏面不同的header 才知道,client可以告知server自己喜歡接收的數據類型(MIME Multi-purpose internet email extension),自己可以接收的數據類型,自己拒絕接受的數據類型,通過這樣的方式,server可以有選擇的發送合適的數據。

當然,這是最淺顯的方法,這種過濾也是沒有差別的,粗暴的,非智能的。像adsafe等過濾廣告,是可以判斷,比如說真正文章或者正式的圖片保留,而一些廣告圖片則被過濾。用過adsafe的同學可能也用360的流量監控看過,我們原本走瀏覽器的流量現在都要通過adsafe來走,而且安卓平臺的adsafe就是建立了一個VPN,我們的流量也要走adsafe.

我認爲,在request header裏面設置accept-header來屏蔽圖片,是可以做到省流量的,但這樣是無差別的屏蔽,是粗暴的,而通過過濾規則,可以更具有針對性。

廣告屏蔽分兩種,一是加載前阻止,二是加載後隱藏。而加載前阻止也可分爲兩類,一是阻止下載,二是下載後阻止加載。只有阻止下載的過濾才能實現省流量的目的。

元素過濾能直接清除網頁源文件內的相關代碼進而阻止相關元素的下載(世界之窗的元素過濾規則甚至能重組網頁結構)。而URL過濾並不對網頁元素和結構進行改變,他只是針對網頁地址阻止其文件下載的一種簡單的過濾方式。以上兩種過濾方式都屬於下載前攔截。hosts屏蔽屬於更改域名解析的一種過濾方式,說白一點就是改變相關對象的ip地址讓其無法正常的下載,當然這種方式也屬於下載前攔截。另外還有一種基於CSS樣式表的過濾方式,這種方式並不對相關元素和地址進行攔截,而是下載後對css樣式表進行修改(隱藏其中廣告元素部分),這就是我們通常說的隱藏式過濾。
這裏有過濾規則的寫法,可以參考卡飯論壇-adsafe自定義過濾規則

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章