2013-02-25 24 views
19

Podczas wysyłania żądania HTTP program IE przesyła zmienną User-Agent na serwer. Możliwe wartości (jak widać przez debugger sieci):Nagłówek żądania HTTP: zmienna UserAgent

User-Agent: Mozilla /5.0 (Kompatybilny MSIE 9.0; Windows NT 6.1; WOW64; Trident/5,0)

Moje pytanie: W jaki sposób IE (lub dowolna inna przeglądarka) może znaleźć tę zmienną? Pytam o to, ponieważ podczas odwiedzania niektórych witryn ta zmienna różni się od innych i chcę sprawdzić, skąd pochodzi zmiana. "Ustawienia zgodności" to jedna opcja, ale myślę, że jest w tym coś więcej.

Czy ktoś może wyjaśnić proces tej zmiennej?

+4

Przede wszystkim jest to nagłówek żądania, a nie jeden. Oznacza to, że pochodzi z przeglądarki na serwer, ale nie z serwera do przeglądarki. Powiedzmy, że każda przeglądarka identyfikuje się na serwerze. – Rolice

Odpowiedz

24

User-Agent pojawia się w nagłówku HTTP Request, a nie w HTTP Response. Ogólnie rzecz biorąc, żądanie jest wysyłane z przeglądarki do aplikacji internetowej. Tak więc zmienna użytkownika jest wypełniana przez przeglądarkę. Różne przeglądarki zapełniają to pole różnymi wartościami.

O tym, jak znaleźć te zmienne, myślę, że pytasz o User-Agent Registry Keys.

Można również zastąpić pewne tokeny ciągu agenta użytkownika, dodając wartości do następującego klucza rejestru.

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 

Domyślna wartość klucza użytkownika zastępuje nazwę aplikacji i tokeny wersji aplikacji zgłoszone w ciągu znaków użytkownika. Należy pamiętać, że pierwszych siedem znaków jest używanych dla nazwy aplikacji, a pozostałe znaki określają token wersji aplikacji.

Wartości Kompatybilne, Platformowe i Wersje zastępują odpowiednie tokeny w ciągu znaków agenta użytkownika.

Dodatkowe żetony można dodać do ciągu znaków agenta użytkownika, korzystając z Edytora rejestru, aby utworzyć nowe wartości ciągów pod klawiszem przed platformą lub po platformie. Nazwa wartości powinna być kompletnym tokenem; dane wartości są ignorowane. Tokeny dodane do klucza platformy wstępnej pojawiają się przed tokenem platformy w ostatnim ciągu znaków agenta użytkownika. Tokeny dodane do klucza Post-Platform pojawiają się po tokenie platformy w ostatnim ciągu znaków agenta użytkownika. Wiele tokenów w kluczu przed platformą lub po pomoście jest wyświetlane w nieprzewidywalnej kolejności.

+0

Jak mogę usunąć Trident/6.0 na komputerze użytkownika, wciąż nie mogłem znaleźć przez 2 tygodnie – user198989

5

Wikipedia article na User Agent stwierdza:

Format ciąg User-Agent jest obecnie określony w sekcji 14.43 RFC 2616 (HTTP/1.1) format ciągu User-Agent w HTTP lista tokenów produktu (słów kluczowych) z opcjonalnymi komentarzami.

Więc polecam przeczytać RFC 2616 section temat:

14,43 User-Agent

Pole nagłówka żądania User-Agent zawiera informacje na temat agenta użytkownika, który wysłał żądanie.Jest to do celów statystycznych, śledzenie naruszeń protokołu i automatyczne rozpoznawanie użytkowników, aby uniknąć konkretnych ograniczeń użytkownika. Aplikacje użytkownika POWINNY zawierać to pole z prośbami
. To pole może zawierać wiele tokenów produktu (sekcja 3.8) oraz komentarze identyfikujące agenta i wszelkie produkty uboczne, które tworzą znaczną część agenta użytkownika. Zgodnie z konwencją tokeny produktu są wymienione w kolejności ich znaczenia dla identyfikacji aplikacji.

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

przykład:

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

Sekcja 4.8 o produktach żeton stany następujące:

3,8 żetony produktu

żetony produktów są stosowane w celu umożliwienia komunikacji aplikacjom
identyfikują się za pomocą nazwy i wersji oprogramowania. Większość pól używających tokenów produktu pozwala także na stosowanie podproduktów, które stanowią istotną część aplikacji, która ma być wyświetlana, oddzielone białą spacją. Zgodnie z konwencją
produkty są wymienione w kolejności ich znaczenia
do identyfikacji aplikacji.

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

Przykłady:

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

tokeny produkt powinien być krótki i na temat. NIE MOGĄ być one
używane do reklamowania lub innych nieistotnych informacji. Mimo, że każdy żeton postać może pojawić się w produktach wersji, to żeton POWINIEN
być wykorzystywane jedynie do identyfikatora wersji (czyli kolejne wersje
tego samego produktu powinna różnić się jedynie w części z produktem wersji z wartości produktu).

Zgodnie z RFC 2616 zawartość User Agents zależy od przeglądarki. Na przykład oto, jak Mozilla Firefox tworzy swojego klienta użytkownika: https://developer.mozilla.org/en-US/docs/Gecko_user_agent_string_reference

Powiązane problemy