Twoja przeglądarka wysyła swojego klienta użytkownika do każdej strony, z którą się łączysz. Pisaliśmy o zmianie przeglądarki użytkownika przeglądarki - ale czym właściwie jest agent użytkownika?
Agent użytkownika to "ciąg" - czyli linia tekstu - identyfikująca przeglądarkę i system operacyjny na serwerze WWW. To brzmi prosto, ale programy użytkownika stały się bałaganem w czasie.
Kiedy twoja przeglądarka łączy się ze stroną internetową, zawiera pole User-Agent w nagłówku HTTP. Zawartość pola klienta użytkownika zależy od przeglądarki i przeglądarki. Każda przeglądarka ma swój własny, wyróżniający się agent użytkownika. Zasadniczo agent użytkownika to sposób, w jaki przeglądarka może powiedzieć "Cześć, jestem Mozilla Firefox w systemie Windows" lub "Cześć, jestem Safari na iPhonie" na serwer internetowy.
Serwer internetowy może wykorzystywać te informacje do obsługi różnych stron internetowych do różnych przeglądarek internetowych i różnych systemów operacyjnych. Na przykład witryna może wysyłać strony mobilne do przeglądarek mobilnych, nowoczesne strony do nowoczesnych przeglądarek i komunikat "proszę uaktualnić przeglądarkę" do Internet Explorera 6.
Na przykład tutaj jest agent użytkownika Firefoksa w systemie Windows 7:
Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0
Ten klient użytkownika dość dużo mówi serwerowi internetowemu: System operacyjny to Windows 7 (nazwa kodowa Windows NT 6.1), jest to 64-bitowa wersja systemu Windows (WOW64), a sama przeglądarka to Firefox 12.
Teraz spójrzmy na klienta użytkownika programu Internet Explorer 9, który jest:
Mozilla / 5.0 (zgodny, MSIE 9.0, Windows NT 6.1; WOW64; Trident / 5.0)
Łańcuch agenta użytkownika identyfikuje przeglądarkę jako IE 9 z silnikiem renderującym Trident 5. Jednak możesz zauważyć coś mylącego - IE identyfikuje się jako Mozilla.
Wrócimy do tego za chwilę. Najpierw przyjrzyjmy się także klientowi przeglądarki Google Chrome:
Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 536.5 (KHTML, jak Gecko) Chrome / 19.0.1084.52 Safari / 536.5
Fabuła gęstnieje: Chrome udaje, że jest zarówno Mozillą, jak i Safari. Aby zrozumieć, dlaczego tak się dzieje, będziemy musieli zbadać historię programów klienckich i przeglądarek.
Mosaic była jedną z pierwszych przeglądarek. Jego ciąg agenta użytkownika to NCSA_Mosaic / 2.0. Później pojawiła się Mozilla (później przemianowana na Netscape), a jej agentem użytkownika była Mozilla / 1.0. Mozilla była bardziej zaawansowaną przeglądarką niż Mozaika - w szczególności obsługiwała ramki. Serwery WWW sprawdzono, czy agent użytkownika zawiera słowo Mozilla i wysyłał strony zawierające ramki do przeglądarek Mozilli. W innych przeglądarkach serwery internetowe wysyłały stare strony bez ramek.
W końcu pojawił się Internet Explorer Microsoftu, który również wspierał ramki. Jednak IE nie otrzymywał stron internetowych z ramkami, ponieważ serwery internetowe właśnie wysłały je do przeglądarek Mozilli. Aby rozwiązać ten problem, firma Microsoft dodała słowo "Mozilla" do swojego agenta użytkownika i dodała dodatkowe informacje (słowo "zgodny" oraz odnośnik do IE). Serwery internetowe z radością widziały słowo Mozilla i wysyłały IE na nowoczesne strony internetowe. Inne przeglądarki, które przyszły później, zrobiły to samo.
W końcu niektóre serwery szukały słowa Gecko - mechanizmu renderującego Firefoksa - i obsługiwały przeglądarki Gecko inne strony niż starsze przeglądarki. KHTML - pierwotnie opracowany dla Konquerera na pulpicie KDE dla Linuksa - dodał słowa "jak Gecko", aby uzyskać nowoczesne strony przeznaczone również dla Gecko. WebKit został oparty na KHTML - gdy został opracowany, dodali słowo WebKit i zachowali oryginalną linię "KHTML, jak Gecko" dla celów kompatybilności. W ten sposób deweloperzy przeglądarki z czasem dodawali słowa do swoich programów użytkownika.
Serwery WWW nie dbają o to, jaki jest dokładny ciąg agenta użytkownika - po prostu sprawdzają, czy zawiera ono określone słowo.
Serwery WWW używają agentów użytkownika do różnych celów, w tym:
Boty indeksujące sieć również używają agentów użytkownika. Na przykład robot internetowy Google identyfikuje się jako:
Googlebot / 2.1 (+ http: //www.google.com/bot.html)
Serwery WWW mogą zapewniać specjalne traktowanie botów - na przykład poprzez zezwalanie im na obowiązkowe ekrany rejestracyjne. (Tak, oznacza to, że czasami można ominąć ekrany rejestracyjne, ustawiając swojego klienta użytkownika na Googlebot).
Serwery WWW mogą również wydawać zamówienia określonym botom (lub wszystkim botom) przy użyciu pliku robots.txt. Na przykład serwer internetowy może nakazać swojemu botowi odejście, lub powiedzieć innemu botowi, że indeksuje tylko niektóre obszary witryny. W pliku robots.txt boty są identyfikowane przez ciągi agenta użytkownika.
Wszystkie główne przeglądarki zawierają sposoby ustawiania niestandardowych agentów użytkownika, dzięki czemu możesz zobaczyć, jakie serwery WWW wysyłają do różnych przeglądarek. Na przykład ustaw przeglądarkę na komputerze na ciąg agenta użytkownika przeglądarki mobilnej, a zobaczysz mobilne wersje stron internetowych na pulpicie.