2013-02-25 26 views
19

HTTP अनुरोध भेजते समय, IE सर्वर-उपयोगकर्ता चर को सर्वर पर भेजता है। एक संभावित मूल्य (के रूप में नेटवर्क डिबगर द्वारा देखा):HTTP अनुरोध शीर्षलेख: UserAgent variable

उपयोगकर्ता-एजेंट: मोज़िला /5.0 (संगत MSIE 9.0, Windows NT 6.1; WOW64; ट्राइडेंट/5,0)

मेरा प्रश्न: IE (या कोई अन्य ब्राउज़र) इस चर को कैसे ढूंढता है? मैं यह पूछ रहा हूं क्योंकि कुछ वेबसाइटों पर जाकर, यह चर दूसरों से अलग है और मैं यह जानना चाहता हूं कि परिवर्तन कहां से आ रहा है। 'संगतता सेटिंग्स' एक विकल्प है, लेकिन मुझे लगता है कि इसके लिए और भी कुछ है।

क्या कोई इस चर की प्रक्रिया को समझा सकता है?

+4

सबसे पहले, यह एक अनुरोध हैडर है, प्रतिक्रिया नहीं है। इसका मतलब है कि यह ब्राउज़र से सर्वर तक आता है, लेकिन ब्राउज़र से अलग नहीं है। आइए कहें कि प्रत्येक ब्राउज़र सर्वर पर स्वयं को पहचानता है। – Rolice

उत्तर

24

उपयोगकर्ता-एजेंट एक HTTP अनुरोध शीर्षलेख में प्रकट होता है, न कि एक HTTP प्रतिक्रिया एक। सामान्य रूप से, अनुरोध ब्राउज़र से वेब एप्लिकेशन पर भेजा जाता है। तो उपयोगकर्ता-एजेंट चर ब्राउज़र द्वारा भरा जाता है। अलग-अलग ब्राउज़र इस फ़ील्ड को विभिन्न मानों से भर देंगे।

आईई उन चरों को कैसे ढूंढता है, मुझे लगता है कि आप 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 

उपयोगकर्ता एजेंट कुंजी का डिफ़ॉल्ट मान आवेदन नाम और आवेदन संस्करण टोकन उपयोगकर्ता के एजेंट स्ट्रिंग की रिपोर्ट में बदल देता है। ध्यान रखें कि पहले सात अक्षर एप्लिकेशन नाम के लिए उपयोग किए जाते हैं, और शेष वर्ण एप्लिकेशन संस्करण टोकन निर्दिष्ट करते हैं।

संगत, प्लेटफ़ॉर्म और संस्करण मान उपयोगकर्ता-एजेंट स्ट्रिंग में संबंधित टोकन को प्रतिस्थापित करते हैं।

पूर्व-प्लेटफ़ॉर्म कुंजी या पोस्ट-प्लेटफ़ॉर्म कुंजी के तहत नए स्ट्रिंग मान बनाने के लिए रजिस्ट्री संपादक का उपयोग कर अतिरिक्त टोकन को उपयोगकर्ता-एजेंट स्ट्रिंग में जोड़ा जा सकता है। मूल्य का नाम पूर्ण टोकन होना चाहिए; मूल्य डेटा को नजरअंदाज कर दिया जाता है। अंतिम उपयोगकर्ता-एजेंट स्ट्रिंग में प्लेटफ़ॉर्म टोकन से पहले प्री-प्लेटफ़ॉर्म कुंजी में जोड़े गए टोकन दिखाई देते हैं। अंतिम उपयोगकर्ता-एजेंट स्ट्रिंग में प्लेटफ़ॉर्म टोकन के बाद पोस्ट-प्लेटफ़ॉर्म कुंजी में जोड़े गए टोकन दिखाई देते हैं। प्री-प्लेटफार्म कुंजी या पोस्ट-प्लेटफ़ॉर्म कुंजी में एकाधिक टोकन एक अप्रत्याशित क्रम में प्रदर्शित होते हैं।

+0

मैं उपयोगकर्ता एजेंट पर ट्राइडेंट/6.0 को कैसे हटा सकता हूं, फिर भी 2 सप्ताह तक नहीं मिल सका – user198989

5

Wikipedia article उपयोगकर्ता पर एजेंट कहा गया है कि:

उपयोगकर्ता-एजेंट स्ट्रिंग स्वरूप वर्तमान में RFC 2616 (HTTP/1.1) HTTP में उपयोगकर्ता-एजेंट स्ट्रिंग के प्रारूप है की धारा 14.43 द्वारा निर्दिष्ट किया जाता वैकल्पिक टिप्पणियों के साथ उत्पाद टोकन (कीवर्ड) की एक सूची।

तो मैं सुझाव है कि आप पढ़ा है इसके बारे में RFC 2616 section:

14,43 उपयोगकर्ता-एजेंट

उपयोगकर्ता-एजेंट अनुरोध हेडर फ़ील्ड उपयोगकर्ता एजेंट अनुरोध होने वाले के बारे में जानकारी शामिल है।यह सांख्यिकीय प्रयोजनों के लिए है, प्रोटोकॉल उल्लंघनों का पता लगाने, और उपयोगकर्ता एजेंटों की स्वचालित पहचान, विशेष उपयोगकर्ता
एजेंट सीमाओं से बचने के लिए प्रतिक्रियाओं को सिलाई करने के लिए। उपयोगकर्ता एजेंटों को इस क्षेत्र को
अनुरोधों के साथ शामिल करना चाहिए। फ़ील्ड में कई उत्पाद टोकन (सेक्शन 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 

उत्पाद टोकन को संक्षिप्त और सटीक होना चाहिए। उन्हें
विज्ञापन या अन्य गैर-आवश्यक जानकारी के लिए उपयोग नहीं किया जाना चाहिए। किसी भी टोकन चरित्र एक उत्पाद संस्करण में दिखाई दे सकते हैं, इस टोकन
केवल एक संस्करण पहचानकर्ता के लिए इस्तेमाल किया जाना चाहिए (यानी,
एक ही उत्पाद के लगातार संस्करणों केवल उत्पाद मूल्य के उत्पाद संस्करण भाग में मतभेद है चाहिए)।

तो आरएफसी 2616 के अनुसार, उपयोगकर्ता एजेंटों की सामग्री ब्राउज़र पर निर्भर है। उदाहरण के लिए, मोज़िला फ़ायरफ़ॉक्स कैसे अपने उपयोगकर्ता एजेंट बनाता है: https://developer.mozilla.org/en-US/docs/Gecko_user_agent_string_reference