User-Agent(UA)的二三事
User-Agent是瀏覽器請求頭中帶有的一個頭信息,包含了http請求發起者的信息。http協議在請求頭中包含這個域的主要目的是為了統計數據,同時可以達到追蹤是否有違背協議的情況出現以及根據特定的用戶適配特定的頁面的需求。瀏覽器領域的紛爭給了UA更多的發展,目前http://www.user-agents.org/列出的ua已經多達上百條。我們目前最常用的就是各種終端設備(尤其是手機)瀏覽器提交請求時設置的UA,比如蘋果iphone手機的UA可能在訪問時就是“IUC(U;iOS 5.0.1;Zh-cn;320*480;)/UCWEB8.1.4.125/42/997”,這個比較文藝,看樣子像是iphone用UC的;一個純粹的果粉可能是“Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8C148”,而android的可能就是“|Mozilla/5.0 (Linux; U; Android 2.2.2; zh-cn; ZTE-U V880 Build/FRF91) UC AppleWebKit/530+ (KHTML, like Gecko) Mobile Safari/530”,symbian可能是“MQQBrowser/2.8 (E71-1;SymbianOS/9.1 Series60/3.0)”。我們可以根據UA統計各種設備的訪問量,達到統計的目的,同時,如果不做UA偽裝的話,也可以找到各種spider和crwaler。
如何去讀一個UA呢?根據RFC2616的描述要求,一個ua字段是這樣的形式User-Agent = "User-Agent" ":" 1*( product | comment ),方便起見,一般所product描述是依照其重要性來排序的,先出現的相對重要一點。product的形式就是名字和版本號,中間用‘/’隔開。就wikipedia上的說法,大多數的瀏覽器目前使用的UA格式如下:Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]。并在文中舉例:Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405
其中
其中各種引擎說明,可以參看這篇文章。
你可以通過這里來測試你的瀏覽器的UA,當然如果自己寫爬蟲的話,也記得做好UA的偽裝工作。如果要做一個PC站點配套的wap站點,如果能力足夠且時間充裕的話,完全可以重寫頁面,用HTML5或者是普通XHTML來進行。寫好以后,條件好的單獨部署單獨維護,條件差的,可以統一部署,由應用服務器端(apache有開源的模塊)根據UA來進行判斷需要顯示的頁面代碼,或者交由框架判斷也可以(寫過濾器對request進行首回合判斷)。
posted on 2012-03-13 18:27 changedi 閱讀(2463) 評論(1) 編輯 收藏 所屬分類: 雜談