Какво е потребителски агент на браузъра?
Вашият браузър изпраща своя потребителски агент на всеки уебсайт, към който се свързвате. Писали сме за промяна на потребителския агент на вашия браузър преди - но какво точно е потребителски агент?
Потребителският агент е "низ" - т.е. ред от текст - идентифициращ браузъра и операционната система към уеб сървъра. Това звучи просто, но потребителските агенти са се превърнали в бъркотия с течение на времето.
Основите
Когато браузърът ви се свърже с уебсайт, той включва поле User-Agent в HTTP заглавката. Съдържанието на полето на потребителския агент варира от браузър до браузър. Всеки браузър има свой собствен отличителен потребителски агент. По същество потребителският агент е начин за браузъра да каже „Здравейте, аз съм Mozilla Firefox на Windows“ или „Здравейте, аз съм Safari на iPhone“ на уеб сървър.
Уеб сървърът може да използва тази информация, за да обслужва различни уеб страници на различни уеб браузъри и различни операционни системи. Например даден уебсайт може да изпраща мобилни страници до мобилни браузъри, модерни страници в модерни браузъри и съобщение „Моля, надстройте браузъра си“ към Internet Explorer 6.
Изследване на агенти на потребители
Например потребителският агент на Firefox в Windows 7:
Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 12.0) Gecko / 20100101 Firefox / 12.0
Този потребителски агент разказва доста на уеб сървъра: Операционната система е Windows 7 (кодово име Windows NT 6.1), 64-битова версия на Windows (WOW64), а самият браузър е Firefox 12.
Сега нека разгледаме потребителския агент на Internet Explorer 9, който е:
Mozilla / 5.0 (съвместим; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)
Редът за потребителски агент идентифицира браузъра като IE 9 с механизма за рендиране на Trident 5. \ t Може обаче да забележите нещо объркващо - IE се идентифицира като Mozilla.
Ще се върнем към това след минута. Първо, нека да разгледаме и потребителския агент на Google Chrome:
Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 536.5 (KHTML, като Gecko) Chrome / 19.0.1084.52 Safari / 536.5
Сюжетът се сгъстява: Chrome се преструва, че е Mozilla и Safari. За да разберем защо, ще трябва да разгледаме историята на потребителските агенти и браузърите.
Безмълвeн низ на потребителския агент
Mosaic е един от първите браузъри. Неговият потребителски агент е NCSA_Mosaic / 2.0. По-късно се появи Mozilla (по-късно преименувана на Netscape), а нейният потребителски агент беше Mozilla / 1.0. Mozilla е по-усъвършенстван браузър от Mosaic - по-специално, той поддържа рамки. Уеб сървърите проверяват дали потребителският агент съдържа думата Mozilla и изпраща страници, съдържащи фреймове в браузърите на Mozilla. За други браузъри уеб сървърите изпращаха старите страници без рамки.
В крайна сметка се появи Microsoft Internet Explorer и той също поддържаше фреймове. Въпреки това, IE не получи уеб страници с фреймове, тъй като уеб сървърите току-що изпратиха тези до браузърите на Mozilla. За да разреши този проблем, Microsoft добави думата Mozilla към своя потребителски агент и добави допълнителна информация (думата „съвместима“ и препратка към IE.) Уеб сървърите бяха щастливи да видят думата Mozilla и изпратиха IE модерните уеб страници. Други браузъри, които дойдоха по-късно, направиха същото.
В крайна сметка някои сървъри потърсиха думата Gecko - механизма за визуализация на Firefox - и обслужваха браузърите на Gecko на различни страници от по-старите браузъри. KHTML - първоначално разработен за Konquerer на десктопа на KDE на Linux - добави думите „като Gecko“, така че те ще получат и съвременните страници, предназначени за Gecko. WebKit е базиран на KHTML - когато е разработен, те добавят думата WebKit и запазват оригиналната “KHTML, като Gecko” линия за целите на съвместимостта. По този начин, разработчиците на браузъри продължиха да добавят думи към своите потребителски агенти с течение на времето.
Уеб сървърите наистина не се интересуват от това, което е точният потребителски низ - те просто проверяват дали съдържа конкретна дума.
употреби
Уеб сървърите използват потребителски агенти за различни цели, включително:
- Обслужване на различни уеб страници към различни уеб браузъри. Това може да се използва за добро - например, за да се предоставят по-прости уеб страници на по-стари браузъри - или зло - например, за да се покаже съобщение „Тази уеб страница трябва да се разглежда в Internet Explorer“.
- Показване на различно съдържание към различни операционни системи - например чрез показване на отслабнала страница на мобилни устройства.
- Събиране на статистически данни, показващи използваните от потребителите браузъри и операционни системи. Ако някога видите статистически данни за пазарния дял на браузъра, това е начинът, по който са придобити.
Ботове за обхождане на уеб използват и потребителски агенти. Например, уеб роботът на Google се идентифицира като:
Googlebot / 2.1 (+ http: //www.google.com/bot.html)
Уеб сървърите могат да дадат на ботове специално третиране - например, като им позволяват чрез задължителни екрани за регистрация. (Да, това означава, че понякога можете да заобикаляте екраните за регистрация, като зададете потребителския си агент на Googlebot.)
Уеб сървърите могат също да дават поръчки на определени роботи (или на всички ботове), използвайки файла robots.txt. Например уеб сървър може да каже на определен бот да си отиде, или да каже на друг бот да индексира само някои области от сайта. В файла robots.txt ботовете се идентифицират от техните низове на потребителски агент.
Всички основни браузъри съдържат начини за задаване на потребителски агенти, така че можете да видите какви уеб сървъри се изпращат до различни браузъри. Например, настройте браузъра на работния плот на низ за потребителски агент на мобилния браузър и ще видите мобилните версии на уеб страниците на работния плот.