用户代理de疑惑
2019獨角獸企業重金招聘Python工程師標準>>>
在計算機科學中,用戶代理(英語:User Agent)指的是代表使用者行為的軟件(軟件代理程序)所提供的對自己的一個標識符。例如,一個電子郵件閱讀器就是一個電子郵件客戶端,而在會話發起協議 (SIP) 中,用戶代理的術語指代的是一個通信會話的所有兩個終端[1]。
在很多場合,用戶代理作為一個主從式架構的分布式計算系統中的通信所用網絡傳輸協議的客戶端而行為。特別的,超文本傳輸協議指定了發起請求的客戶端軟件,使用一個“User-Agent”請求頭,即使在客戶端不由用戶操縱的時候。SIP 協議(基于 HTTP)沿用了這一用法。
格式
用戶代理字符串的格式目前被RFC 2616 (HTTP/1.1)的 Section 14.43 所指定。在 HTTP 中,用戶代理字符串的格式是產品標記(關鍵字)和可選的注釋所組成的一個列表。例如如果你的產品叫做 WikiBrowser, 你的用戶代理字符串就可能是 WikiBrowser/1.0 Gecko/1.0。“最重要的”產品組件被最先列出。這個字符串的部分如下所示:
- 產品名稱和版本(WikiBrowser/1.0)
- 排版引擎和版本(Gecko/1.0)。在這種情況下,這指示了排版引擎和版本。
但不幸的是,在瀏覽器大戰期間,很多網絡服務器被配置為只給被識別為某些版本的 Mozilla 的客戶端發送需要高級功能的網頁。
由于這個原因,絕大多數網頁瀏覽器使用的 User-Agent 值如下:Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]}}。例如,iPad 上的 Safari 使用的就是下述:
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這個字符串的組成如下:
- Mozilla/5.0:先前用以指示與 Mozilla 排版引擎的兼容性
- (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us):瀏覽器所運行于的系統的詳細信息
- AppleWebKit/531.21.10:瀏覽器所使用的平臺
- (KHTML, like Gecko):瀏覽器平臺的細節
- Mobile/7B405:被瀏覽器用于指示特定的直接由瀏覽器提供或者通過第三方提供的可用的增強功能。這方面的一個實例是 Microsoft Live Meeting,它注冊了一個擴展以使 Live Meeting 服務知道該軟件是否已經安裝上,這意味著它可以為加入會議提供一個簡化的體驗。
轉載于:https://my.oschina.net/u/919580/blog/141792
總結
- 上一篇: Android (cocos2dx 网络
- 下一篇: 在PHP中利用wsdl创建标准webse