Ваш браузер надсилає свого агента користувача на кожен веб-сайт, до якого ви підключаєтесь. Ми вже писали про зміна агента користувача вашого браузера раніше - але що взагалі є агентом користувача?
Агент користувача - це "рядок", тобто рядок тексту, що ідентифікує браузер та операційну систему веб-сервера. Це звучить просто, але користувальницькі агенти з часом перетворились на хаос.
Основи
Коли ваш браузер підключається до веб-сайту, він включає поле 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. Однак ви можете помітити щось заплутане - 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. Щоб зрозуміти, чому, нам доведеться вивчити історію користувацьких агентів та браузерів.
Безперечник рядка користувача
Мозаїка була одним з перших браузерів. Його рядок агента користувача був NCSA_Mosaic / 2.0. Пізніше з'явилася Mozilla (пізніше перейменована в Netscape), а її користувальницьким агентом стала Mozilla / 1.0. Mozilla була вдосконаленим браузером, ніж Mosaic - зокрема, вона підтримувала фрейми. Веб-сервери перевірили, що агент користувача містить слово Mozilla, і відправляв сторінки, що містять кадри, у браузери Mozilla. В інші браузери веб-сервери надсилали старі сторінки без фреймів.
Зрештою з’явився Internet Explorer від Microsoft, який також підтримував фрейми. Однак 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 боти ідентифікуються за допомогою їх рядків агента користувача.
Усі основні браузери містять способи встановити користувацькі агенти користувача , щоб ви могли бачити, що веб-сервери надсилають різним браузерам. Наприклад, встановіть для веб-переглядача настільного пристрою рядок агента користувача мобільного браузера, і ви побачите мобільні версії веб-сторінок на робочому столі.