Nagłówek żądania HTTP: zmienna UserAgent

Podczas wysyłania żądania HTTP, IE wysyła zmienną User-Agent do serwera. Możliwa wartość (widziana przez debugger sieciowy):

User-Agent: Mozilla /5.0 (Compatible MSIE 9.0;Windows NT 6.1;WOW64; Trident / 5.0)

Moje pytanie: jak IE (lub jakakolwiek inna przeglądarka) wykryje tę zmienną? Pytam o to, ponieważ odwiedzając niektóre strony, ta zmienna jest inna niż inne i chciałbym prześledzić, skąd się bierze zmiana. "Zgodność Ustawienia " to jedna z opcji, ale myślę, że jest w tym coś więcej.

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

Author: PoeHaH, 2013-02-25

2 answers

User-Agent pojawia się w nagłówku żądania HTTP, a nie w odpowiedzi HTTP. Zasadniczo żądanie jest wysyłane z przeglądarki do aplikacji internetowej. Tak więc zmienna user-agent jest wypełniana przez przeglądarkę. Różne przeglądarki wypełnią to pole różnymi wartościami.

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

Można również nadpisać niektóre tokeny ciągu User-agent, dodając wartości do następujących klucz 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 User Agent zastępuje tokeny nazwy aplikacji i wersji aplikacji zgłoszone w łańcuchu user-agent. Należy pamiętać, że pierwsze siedem znaków jest używanych do nazwy aplikacji, a pozostałe znaki określają token wersji aplikacji.

Wartości Compatible, Platform i Version zastępują odpowiednie tokeny w łańcuchu user-agent.

Dodatkowe tokeny mogą być dodawane do ciągu User-agent przez używanie edytora rejestru do tworzenia nowych wartości ciągów pod kluczem Pre-Platform lub post-Platform. Nazwa wartości powinna być kompletnym tokenem; Dane wartości są ignorowane. Tokeny dodane do klucza Pre-Platform pojawiają się przed tokenem platformy w końcowym łańcuchu user-agent. Tokeny dodane do klucza Post-Platform pojawiają się po tokenie platformy w końcowym łańcuchu user-agent. Wiele tokenów w kluczu Pre-platformowym lub Post-platformowym jest wyświetlanych w nieprzewidywalnej kolejności.

 27
Author: StarPinkER,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-05 04:40:11

Artykuł Wikipedii na User Agent stwierdza, że:

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

Więc polecam przeczytać RFC 2616 Sekcja o tym:

14.43 User-Agent

Pole User-Agent request-header zawiera informacje o użytkownik / align = "left" / Jest to dla celów statystycznych, śledzenie naruszeń protokołu i automatyczne rozpoznawanie użytkownika w 2009 roku firma została założona przez Marka Iwo ' a.]} ograniczenia agenta. Agenci użytkownika powinni zawierać To pole z
prośby. Pole może zawierać wiele tokenów produktu (sekcja 3.8) i komentarze identyfikujące agenta i wszelkie podprodukty, które tworzą
znaczna część agenta użytkownika. Zgodnie z konwencją, produkt żetony są wymienione w kolejności ich znaczenia dla identyfikacji
podanie.

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

Przykład:

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

Sekcja 4.8 o produktach token stwierdza, co następuje:

3.8 Żetony Produktu

Tokeny produktu są używane do komunikacji aplikacji do
zidentyfikuj się po nazwie i wersji oprogramowania. Większość pól używających
tokeny produktów umożliwiają również produkty podrzędne, które stanowią znaczącą część
z lista aplikacji, oddzielona białą spacją. By
konwencja, produkty są wymienione w kolejności ich znaczenia
do identyfikacji wniosku.

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

Przykłady:

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

Żetony produktu powinny być krótkie i rzeczowe. Nie mogą być
wykorzystywane w celach reklamowych lub innych nieistotnych informacji. Chociaż każdy znak tokena może pojawić się w wersji produktu, ten token powinien
być używane tylko dla identyfikatora wersji (tj., kolejne wersje
ten sam produkt powinien różnić się jedynie porcją wersji produktu wartość produktu).

Zgodnie z RFC 2616 zawartość agentów Użytkownika zależy od przeglądarki. Na przykład, oto jak Mozilla Firefox buduje swojego agenta użytkownika: https://developer.mozilla.org/en-US/docs/Gecko_user_agent_string_reference
 6
Author: Bgi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-06 11:48:21