什么是用户代理 (UA)


在计算机领域,用户代理是一个字符串,网页浏览器或其他客户端软件在每次发送请求到网页服务器时都会发送该字符串以识别自身及其功能。用户代理字符串包含有关浏览器版本、操作系统、设备类型和其他可用于识别客户端的详细信息。网页服务器使用这些信息来调整其对特定客户端的响应,例如通过发送针对客户端设备类型优化的内容,或修改内容的布局以更好地适应客户端的显示尺寸。用户代理字符串也可用于跟踪和分析目的,例如收集有关哪些类型的浏览器和设备用于访问特定网站的统计数据。

当然,这里有一些关于用户代理的更多信息 -

  • 用户代理通常用于识别向服务器发出请求的浏览器或设备,以便服务器能够以针对该特定客户端进行了优化的内容进行响应。例如,服务器可能会向具有不同屏幕尺寸的客户端提供不同的样式表或布局模板,或者可能会向具有小屏幕的客户端提供针对移动设备优化的内容。

  • 用户代理字符串可以包含各种信息,包括浏览器名称和版本、操作系统和版本、设备类型(如智能手机或平板电脑)以及有关客户端软件的其他详细信息。服务器可以使用这些信息来确定如何处理请求以及提供什么内容。

  • 一些用户代理包含有关客户端语言首选项的信息,服务器可以使用这些信息以适当的语言提供内容。

  • 用户代理通常发送在 HTTP 请求的“User-Agent”标头字段中,但也可以通过其他方式发送,例如在“X-User-Agent”标头字段中或作为 URL 中的查询参数。

  • 用户代理可以被伪造,这意味着客户端可以向服务器发送伪造的用户代理字符串以使其看起来像是不同类型的客户端。这可以出于各种原因进行,例如绕过某些类型内容的限制或测试服务器对不同用户代理的处理方式。

用户代理 (UA) 类型

用户代理有很多不同的类型,因为用户代理字符串可以包含有关客户端软件的各种信息。以下是一些您可能会遇到的用户代理类型的示例 -

  • 网页浏览器 - 网页浏览器的用户代理通常包含浏览器的名称和版本,以及有关操作系统和设备类型的信息。例如,Windows 10 PC 上 Google Chrome 的用户代理字符串可能如下所示:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36”。

  • 移动设备 - 移动设备的用户代理通常包含操作系统的名称和版本,以及有关设备型号和屏幕尺寸的信息。例如,运行 iOS 14 的 iPhone 的用户代理字符串可能如下所示:“Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1”。

  • 网页爬虫 - 网页爬虫(也称为蜘蛛或机器人)的用户代理通常包含爬虫的名称和版本,以及有关运营该爬虫的组织的信息。例如,Googlebot 爬虫的用户代理字符串可能如下所示:“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”。

  • 其他客户端 - 还有许多其他类型的客户端软件可以发送用户代理字符串,例如桌面应用程序、媒体播放器和游戏机。这些客户端的用户代理字符串可能包含有关软件及其运行的设备的信息。

如何选择用于测试的用户代理 (UA)

在选择用于测试的用户代理时,需要考虑以下几点 -

  • 兼容性 - 确保您选择的用户代理与您正在测试的服务器或网站兼容。某些服务器或网站可能会根据用户代理阻止或修改其响应,因此您可能需要选择一个可能被接受的用户代理。

  • 模仿 - 您可能希望选择一个与真实客户端的用户代理非常相似的用户代理,以便获得更准确的测试结果。例如,如果您正在测试网站的移动布局,则可以选择流行智能手机型号的用户代理字符串。

  • 自定义 - 您可能希望自定义用户代理字符串以包含您感兴趣的测试的特定信息。例如,您可能希望测试服务器如何响应不同的浏览器版本或操作系统版本。

要选择用户代理,您可以使用诸如网页浏览器扩展程序或命令行实用程序之类的工具,这些工具允许您从预定义的用户代理列表中进行选择或自定义自己的用户代理。您还可以在网上找到可以作为参考的用户代理字符串列表。请注意,用户代理字符串可能会随着时间的推移而发生变化,因此最好检查您正在使用的是否是最新的。

用户代理 (UA) 示例

以下是一些不同类型客户端的用户代理字符串示例 -

  • Windows 10 上的 Google Chrome - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"

  • macOS 上的 Apple Safari - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15"

  • Windows 8.1 上的 Internet Explorer - "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"

  • Linux 上的 Mozilla Firefox - "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0"

  • Android 智能手机 - "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Mobile Safari/537.36"

  • iPad - "Mozilla/5.0 (iPad; CPU OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15E148 Safari/604.1"

  • Googlebot 爬虫 - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

请记住,这些只是一些示例,还有许多其他类型的用户代理具有不同的字符串。用户代理字符串的格式和内容可能会因客户端软件及其编程包含的信息而异。

更新于: 2023年2月6日

5K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告