Change Dir

          先知cd——熱愛生活是一切藝術的開始

          統計

          留言簿(18)

          積分與排名

          “牛”們的博客

          各個公司技術

          我的鏈接

          淘寶技術

          閱讀排行榜

          評論排行榜

          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

          其中

        1. Mozilla/5.0: Previously used to indicate compatibility with the Mozilla rendering engine (與Mozilla渲染引擎兼容)
        2. (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us): Details of the system in which the browser is running (瀏覽器運行的系統信息)
        3. AppleWebKit/531.21.10: The platform the browser uses (瀏覽器的平臺?我覺得應該說是瀏覽器引擎,具體說是布局引擎)
        4. (KHTML, like Gecko): Browser platform details (瀏覽器引擎信息)
        5. Mobile/7B405: This is used by the browser to indicate specific enhancements that are available directly in the browser or through third parties. An example of this is Microsoft Live Meeting which registers an extension so that the Live Meeting service knows if the software is already installed, which means it can provide a streamlined experience to joining meetings
        6. 其中各種引擎說明,可以參看這篇文章

          你可以通過這里來測試你的瀏覽器的UA,當然如果自己寫爬蟲的話,也記得做好UA的偽裝工作。如果要做一個PC站點配套的wap站點,如果能力足夠且時間充裕的話,完全可以重寫頁面,用HTML5或者是普通XHTML來進行。寫好以后,條件好的單獨部署單獨維護,條件差的,可以統一部署,由應用服務器端(apache有開源的模塊)根據UA來進行判斷需要顯示的頁面代碼,或者交由框架判斷也可以(寫過濾器對request進行首回合判斷)。

          posted on 2012-03-13 18:27 changedi 閱讀(2467) 評論(1)  編輯  收藏 所屬分類: 雜談

          評論

          # re: User-Agent(UA)的二三事 2013-01-14 14:42

          gfweagwer  回復  更多評論   

          主站蜘蛛池模板: 衡阳县| 名山县| 永平县| 麻栗坡县| 寿光市| 郎溪县| 永顺县| 永仁县| 武乡县| 资源县| 海口市| 武胜县| 东兰县| 孝义市| 铜川市| 奉节县| 景德镇市| 阿克陶县| 潮州市| 禹城市| 吉林市| 舞阳县| 龙门县| 辰溪县| 青岛市| 禹州市| 特克斯县| 江陵县| 临颍县| 阳原县| 桐柏县| 平塘县| 竹山县| 金溪县| 赣榆县| 临海市| 陆丰市| 义乌市| 莱芜市| 大竹县| 鹤庆县|