2013-02-25 84 views
19

發送HTTP請求時,IE將User-Agent變量發送到服務器。的可能值(由網絡調試器所看到):HTTP請求標頭:UserAgent變量

的User-Agent:Mozilla的/5.0(兼容MSIE 9.0; Windows NT的6.1; WOW64; 三叉戟/ 5.0)

我的問題: IE(或任何其他瀏覽器)如何找出這個變量? 我在問這是因爲在訪問某些網站時,這個變量與其他變量不同,我想追蹤變化來自哪裏。 「兼容性設置」是一種選擇,但我認爲還有更多。

任何人都可以解釋這個變量的過程?

+4

首先,這是一個請求頭,而不是響應頭。這意味着它從瀏覽器到服務器,而不是從服務器到瀏覽器。比方說,每個瀏覽器標識自己的服務器。 – Rolice 2013-03-04 22:24:46

回答

24

用戶代理出現在HTTP請求標題中,而不是HTTP響應。通常,請求從瀏覽器發送到Web應用程序。所以用戶代理變量由瀏覽器填充。不同的瀏覽器會用不同的值填充該字段。

關於IE如何找到這些變量,我想你問的是User-Agent Registry Keys

您也可以通過將值添加到以下注冊表項中來覆蓋用戶代理字符串的某些標記。

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER) 
    SOFTWARE 
     Microsoft 
     Windows 
      CurrentVersion 
       Internet Settings 
        5.0 
        User Agent 
         (default) = "Mozilla/4.0" 
         Compatible = "compatible" 
         Platform = "Windows NT 5.1" 
         Version = "MSIE 6.0" 
         Pre Platform 
          Token = Value 
         Post Platform 
          Token = Value 

用戶代理密鑰的默認值替換用戶代理字符串中報告的應用程序名稱和應用程序版本令牌。請注意,前七個字符用於應用程序名稱,其餘字符指定應用程序版本令牌。

Compatible,Platform和Version值替換用戶代理字符串中相應的標記。

通過使用註冊表編輯器在Pre-Platform密鑰或Post-Platform密鑰下創建新的字符串值,可以將額外的令牌添加到用戶代理字符串中。值名稱應該是完整的標記;值數據被忽略。添加到預平臺密鑰中的令牌出現在最終用戶代理字符串中的平臺令牌之前。添加到Post-Platform密鑰中的令牌出現在最終用戶代理字符串中的平臺令牌之後。 Pre-Platform鍵或Post-Platform鍵中的多個令牌以不可預知的順序顯示。

+0

如何刪除用戶代理上的Trident/6.0,仍然無法找到2周 – user198989 2014-11-07 06:43:03

5

Wikipedia article上用戶代理指出:

的用戶代理字符串格式目前由RFC 2616(HTTP/1.1)的用戶代理字符串的HTTP格式是第14.43 指定 包含可選註釋的產品標記(關鍵字)列表。

因此,我建議你閱讀RFC 2616 section一下:

14.43的User-Agent

用戶代理請求頭字段包含有關 用戶代理髮起請求信息。這是爲了統計目的, 協議違反的跟蹤,以及爲了定製響應以避免特定用戶的代理限制,自動識別用戶代理 。用戶代理應該包括這個字段
請求。該字段可以包含多個產品標記(3.8節) 以及標識代理的註釋以及構成用戶代理的重要部分的任何子產品。按照慣例,產品標記 按照它們對於識別
申請的重要性順序列出。

User-Agent  = "User-Agent" ":" 1*(product | comment) 

實施例:下面

User-Agent: CERN-LineMode/2.15 libwww/2.17b3 

關於產品的4.8節令牌狀態:

3.8產品令牌

產品令牌被用來允許通信的應用程序,以
通過軟件名稱和版本標識自己。大多數使用
產品標記的字段還允許將應用程序的重要部分
的子產品列出,並以空格分隔。通過
慣例,產品按照它們的重要性
的順序列出以用於識別應用。

product   = token ["/" product-version] 
    product-version = token 

實例:

User-Agent: CERN-LineMode/2.15 libwww/2.17b3 
    Server: Apache/0.8.4 

產品令牌應該短和對點。他們不得是用於廣告或其他非必要信息的
。雖然任何 令牌字符可能出現在產品的版本,此令牌應該
只能用於一個版本標識符(即,
同一產品的連續版本只應在的 產品價值的產品的版本的部分不同)。

所以根據RFC 2616,用戶代理的內容取決於瀏覽器。例如,下面是Mozilla Firefox如何構建其用戶代理: https://developer.mozilla.org/en-US/docs/Gecko_user_agent_string_reference