Web 服务器如何知道我正在使用哪个浏览器或选项卡?

Web 服务器如何知道我正在使用哪个浏览器或选项卡?,web,browser,tabs,Web,Browser,Tabs,我有一个面试的问题。 您能告诉我服务器是如何知道我正在为特定网站使用哪个选项卡或浏览器的吗?当用户从浏览器发出请求时,会向服务器发送一个名为用户代理的标题。看起来是这样的: User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0 它清楚地告诉你浏览器是mozilla,尽管出于历史原因,还有一些额外的信息你不必担心 header是一种用户看不到的元信息,但通过共享此类信息帮助服务器与客户端通

我有一个面试的问题。
您能告诉我服务器是如何知道我正在为特定网站使用哪个选项卡或浏览器的吗?

当用户从浏览器发出请求时,会向服务器发送一个名为
用户代理的
标题。看起来是这样的:

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
它清楚地告诉你浏览器是mozilla,尽管出于历史原因,还有一些额外的信息你不必担心

header
是一种用户看不到的元信息,但通过共享此类信息帮助服务器与客户端通信。因此,如果客户端使用的是过时的浏览器,您可以为不同的页面提供不同的服务

您无法知道客户端正在使用哪个选项卡。

请参见此

在计算中,用户代理是软件(软件代理),即 代表用户行事。该术语的一个常见用法是指网络 告诉网站有关浏览器和操作系统的信息的浏览器 系统。这使网站可以自定义网站的内容 特定设备的功能,但也会引发隐私问题

“用户代理”一词还有其他用途。例如,一封电子邮件 reader是邮件用户代理。在许多情况下,用户代理充当 网络协议中的客户端,用于 客户机-服务器分布式计算系统。特别是 超文本传输协议(HTTP)标识客户端软件 使用用户代理标头发起请求,即使 客户端不是由用户操作的。会话启动协议 (SIP)协议(基于HTTP)遵循这种用法。在啜饮的过程中 术语用户代理是指通信会话的两个端点

软件代理在网络中运行时的用户代理标识 协议,它通常标识自身、应用程序类型、操作 通过提交 将特征标识字符串发送到其操作对等方。在HTTP中, 在SIP和NNTP协议中,该标识以 标题字段用户代理。诸如网络爬虫之类的机器人通常也 包括URL和/或电子邮件地址,以便网站管理员可以联系 机器人的操作员

在HTTP中使用在HTTP中,用户代理字符串通常用于内容 协商,其中源服务器选择合适的内容或 响应的操作参数。例如,用户代理 web服务器可能会使用字符串根据 特定版本客户端软件的已知功能。这个 内容裁剪的概念内置于RFC中的HTTP标准中 1945“为了定制响应以避免特定用户 代理限制。”

用户代理字符串是Web爬虫可以使用的标准之一 不允许使用访问网站的某些部分 机器人排除标准(Robots.txt文件)

与许多其他HTTP请求头一样 “用户代理”字符串为客户端提供的信息 发送到服务器,因为字符串可能因用户而异 给用户

用于人工操作的web浏览器的格式用户代理字符串格式为 目前由HTTP/1.1语义和 HTTP中用户代理字符串的格式是 带有可选注释的产品标记(关键字)。例如,如果 用户的产品称为WikiBrowser,其用户代理字符串可能 成为WikiBrowser/1.0 Gecko/1.0“最重要”的产品组件 首先列出的是

该字符串的各部分如下所示:

产品名称和版本(WikiBrowser/1.0)布局引擎和版本 (Gecko/1.0)在第一次浏览器大战期间,许多web服务器 配置为仅发送需要高级功能的网页, 包括框架,发送给被标识为 其他浏览器被认为是较旧的产品,例如 马赛克,大提琴或桑巴,并将发送一个裸体的HTML文档

因此,大多数Web浏览器使用用户代理字符串值作为 如下:

Mozilla/[版本]([系统和浏览器信息])[平台] ([platform details])[extensions]。例如,iPad上的Safari 使用了以下内容:

Mozilla/5.0(iPad;U;CPU操作系统3_2_1,类似Mac OS X;en us) AppleWebKit/531.21.10(KHTML,比如Gecko)Mobile/7B405组件 该字符串的长度如下所示:

Mozilla/5.0:以前用于表示与 Mozilla渲染引擎(iPad;U;CPU OS 3_2_1,类似Mac OS X; en us):运行浏览器的系统的详细信息。 AppleWebKit/531.21.10:浏览器使用的平台 Gecko):浏览器平台详细信息。Mobile/7B405:这是由 用于指示直接可用的特定增强功能的浏览器 在浏览器中或通过第三方。例如 Microsoft Live Meeting,它注册了一个扩展,以便 会议服务知道软件是否已安装,这 意味着它可以为参加会议提供简化的体验。 在迁移到Chromium代码库之前,Opera是应用最广泛的 使用的web浏览器没有用户代理字符串 “Mozilla”(以“Opera”开头)。自2013年7月15日起, Opera的用户代理字符串以“Mozilla/5.0”开头,为了避免 遇到旧服务器规则时,不再包含“Opera”一词 (而是使用字符串“OPR”表示Opera版本)

自动代理(bot)的格式自动web爬网工具可以 使用简化的表单,其中一个重要字段是联系信息 如果出现问题,按照惯例,“bot”一词包含在 姓名