User Agent 解析:它是什么以及工作原理

什么是User Agent?

UserAgent,简称UA,是一个使服务器能够识别用户使用的浏览器类型、版本以及运行浏览器的操作系统等信息的字符串。它作为浏览器请求头部信息的一部分发送给服务器,以便服务器可以返回合适格式和版本的内容。

跟Cookie一样,网站可以根据浏览器的User Agent为用户提供个性化的体验,比如:

  • 正确显示网页:确保无论你用手机还是电脑访问,网页都能正常显示。

  • 个性化体验:如果某些特效在手机上不起作用,在电脑上却可以,那么网站可以根据UserAgent调整这些功能。

  • 快速加载:如果你的网络连接慢,UserAgent可以帮助网站提供一个简化版页面,让加载速度更快。

  • 保护安全:有时候它也能帮助识别出哪些不寻常的访问可能是自动程序(比如机器人)在搞鬼。

所以呢,虽然我们平时看不见UserAgent,但它确实在幕后默默地为我们提供了很多方便。

User Agent的示例

在不同的设备和操作系统上,UserAgent字符串会有所不同。这些字符串为网站提供了关于你正在使用的浏览器和设备类型的重要线索。让我们来看几个实际的例子:

Chrome User Agent

Windows电脑上,Chrome浏览器的UA:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

Firefox User Agent

Windows电脑上,Firefox浏览器的UA:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0

Safari User Agent

Mac电脑上,Safari浏览器的UA:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15

Edge User Agent

Windows电脑上,Edage浏览器的UA:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0

Android User Agent 

Android手机上,Chrome浏览器的UA:

Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36

iOS User Agent 

iPhone手机上,Safari浏览器的UA:

Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1

User Agent的组成

从上面的示例我们可以大概了解到,User Agent(UA)字符串可以分为7个部分:

Mozilla/5.0 - 这部分起源于网景导航器(Netscape Navigator)浏览器,但现在几乎所有的浏览器都会以这样或类似的形式开始他们的UA字符串。它并没有特定含义,只是遵循了一个历史标准。

(Windows NT 10.0; Win64; x64) - 这是一个括号内的详细信息列表,说明了使用者的操作系统。在这个例子中,“Windows NT 10.0”指Windows 10操作系统,“Win64”表示64位版本的Windows,“x64”也表示运行在x64架构处理器上。

AppleWebKit/537.36 - 表示该浏览器使用AppleWebKit渲染引擎进行页面渲染。“537.36”则是具体版本号。

(KHTML, like Gecko) - KHTML是Konqueror浏览器使用的渲染引擎。“like Gecko”表示该浏览器兼容Gecko渲染引擎,Gecko是Firefox使用的渲染引擎。

Chrome/124.0.0.0 - 指明了用户正在使用Chrome浏览器及其版本号“124.0.0.0”。

Safari/537.36 - 即使用户实际上可能并不使用Safari浏览器,许多非Safari浏览器也会包含“Safari”及其版本号作为UA字符串一部分。这主要是为了与基于Webkit或需要特定Safari认证才能正常显示内容的网站兼容。

Mobile - 如果存在,则指示用户正在使用移动设备访问网站。

如何查看和修改浏览器的User Agent?

查看浏览器的User Agent

我们可以访问一些指纹检测网站去帮我们解析User Agent(UA) ,点击“解析”,就可以知道当前浏览器或者输入的UA字符串包含了哪些信息。

修改User Agent的工具

AdsPower

AdsPower多账户浏览器支持更改浏览器的UA,并且你无需苦恼该选择用什么的UA。在创建浏览器环境的时候,AdsPower会为您自动匹配一个合适的User Agent。且浏览器的内核版本跟User Agent版本相匹配。(这个很重要,后文我们会做一个小实验说明)

它还提供免费的浏览器环境,并且拥有数量庞大且符合真实设备特征的UA指纹库(包含Window、MacOS、Linux、Android、iOS的UA)。

如果你选择修改UA,AdsPower还会针对该UA版本生成匹配的其他指纹参数,如浏览器内核、WebGL信息、Canvas指纹等等。AdsPower的浏览器环境会模拟得更像是一台全新的物理设备,而不仅仅是修改UA这么简单。

User-Agent Switcher

这是一款知名的浏览器插件,它提供了一些预设列表并允许你快速切换到不同设备类型的UA。但是,该插件提供的预设UA太少了,得自己填写一些UA字符串。

User-Agent Switcher and Manger

另一款流行的UA修改工具,这块比User-Agent Switcher多了许多UA预设,可以选择的范围相对较多。

AdsPower  vs User Agent修改插件

同样是修改User Agent,AdsPower与其他第三方插件有什么区别呢?我们借助指纹浏览器检测网站去对比测试结果。

AdsPower

当使用AdsPower浏览器的时候,内核选择的版本是123,但是UA版本是121,相差不大,并且其他指纹适配,不容易被检测出来。

 

第三方插件

如果仅仅是改了UA,没有对浏览器的其他指纹进行处理,那依然有可能会被网站检测出来!

如下图所示,Chrome浏览器的内核版本是124,使用了第三方UA修改插件,将UA版本修改为123,只相差1个版本,也依然能被网站检测出来!

为什么管理User Agent很重要?

在多账户管理中,修改UserAgent(UA)需要谨慎对待。每个账户的UA应当与其相对应的设备保持一致,以避免引起网站的怀疑。

此外,为了避免账号之间被关联,大量的账户需要拥有不同的User Agent。因此,对于需要高度隔离各自环境的多账户管理者而言,AdsPower指纹浏览器提供了更加专业和安全的解决方案。它不仅支持为每个账户创建独立且完整的浏览环境,还能让用户精细控制从User Agent到各种指纹的设置,AdsPower通过模拟真实物理设备来降低风险,即便是非技术用户也能轻松管理和操作。

常见问题

User Agent代表什么?

User Agent 代表了发出网络请求的客户端软件(通常是浏览器)的身份信息,它包含了设备类型、操作系统、浏览器类型及版本等详细数据。网站服务器利用这些信息来确定应该发送哪种格式的内容给用户,以确保最佳的用户体验。

如何获取浏览器的User Agent?

要获取浏览器的 User Agent,你可以简单地访问一个如 browserscan.net 这样的指纹检测站,它会显示出你当前使用设备的UA。或者,在你的浏览器中打开开发者工具(通常通过按F12键或右键点击页面并选择“检查”),然后在‘网络’标签下刷新页面,即可在请求头部分找到UA字符串。

如何修改User Agent?

修改 User Agent 可以通过多种方式实现。一种方法是在浏览器的开发者工具中手动设置新的UA字符串。例如,在Chrome和Firefox中,你可以在‘网络条件’选项卡内更改UA。另一种方法是使用第三方扩展程序,如“User-Agent Switcher”,这类扩展允许你快速切换到不同设备类型的预设UA列表。也可以选择更加安全的AdsPower指纹浏览器。

Mozilla/5.0 是什么浏览器?

"Mozilla/5.0" 并不指代一个特定的浏览器,而是几乎所有现代Web浏览器都使用这个前缀作为他们 User Agent 字符串的一部分。这个前缀起源于早期互联网时期,并被沿用至今作为一种传统形式。实际上,“Mozilla/5.0”后面跟随着具体识别信息才能告诉我们正在使用哪个浏览器和版本。

推荐阅读

一文看懂 Canvas 指纹

电脑浏览器是如何泄露我们隐私的?

干货 | MAC地址可能泄露设备信息?一招教你隐藏!

网站是如何识别浏览器指纹的?教你使用指纹浏览器防指纹识别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

proteus+stm32+CubeMX+dht11+lcd1602

浅浅记录下过程遇到的问题🤡🤡🤡 1 供电网配置错误(加上就好了 新起个名也会出这个 / 电源不起名 不创建估计项目也会)没zet6的 proteus 里 固件库 账号注册半天没成 就用的stm32F103R6的然后发现单片机不输出高低电平…

阿里云服务器开放端口的最最最正确的方法

今天,我突然发现阿里云服务器端口无法访问ElasticSearch了,嗯???肿么回事,搜遍了全网,终于在我身心俱疲后找到了原因: 现在我来总结一下出现这种问题的原因以及解决步骤 &#xff1a…

电机入门1

文章目录 122.12.22.3 33.13.23.33.4 1 2 2.1 电机板 驱动板电机分类 驱动器分类 转速 转向扭矩定时器 ADC 2.2 PID 自动控制 的核心闭环控制算是 PID的应用 2.3 无刷电机用的 可大大提高其控制效率 和控制精度 3 开发板的IO 电流太小了 20~25ma 电机要A 驱动板 信号放大没舵…

守护人类健康:人工智能赋能医疗领域创新应用

常言道,“如果说人生是一场漫长的马拉松,那么健康将是决定跑道长度的关键因素。”健康是幸福生活和社会发展的基石。随着智能化时代的到来,人工智能技术在医疗健康领域的应用也日益广泛,成为了维护和促进人类健康的新工具。无论是…

《汇编语言》- 读书笔记 - 综合研究

《汇编语言》- 读书笔记 - 综合研究 研究试验 1 搭建一个精简的 C 语言开发环境1. 下载2. 配置3. 编译4. 连接 研究试验 2 使用寄存器1. 编一个程序 ur1.c ( tcc 用法)tcc 编译连接多个源文件tlink 手动连接 2.用 Debug 加载 ur1.exe,用u命令…

如何在现场电脑是部署onnx模型

调整版本为Release x64(关键)并配置好CUDA和CUDNN。 注意:Release | x64是基类主配置,包含目录下有编译器的一些链接库 以及一些库目录: 以及附加依赖项: msvcprt.lib kernel32.lib user32.lib gdi32.l…

代码随想录算法训练营day40

题目:343. 整数拆分、96.不同的二叉搜索树 参考链接:代码随想录 343. 整数拆分 思路:五部曲来走。dp数组,dp[i]用于记录拆i得到的最大乘积和,我们要求的也就是dp[n];递推公式,我们想拆分i&am…

ZooKeeper集群的搭建

ZooKeeper集群的搭建 将master节点的/data目录下的ZooKeeper安装包解压到/opt/software目录下 tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/software/在master节点切换至ZooKeeper安装目录的conf目录下,将zoo_sample.cfg重命名为zoo.cfg,并…

OpenHarmony语言基础类库【@ohos.util.LinkedList (线性容器LinkedList)】

LinkedList底层通过双向链表实现,双向链表的每个节点都包含对前一个元素和后一个元素的引用。当需要查询元素时,可以从头遍历,也可以从尾部遍历,插入、删除效率高,查询效率低。LinkedList允许元素为null。 LinkedList…

基于Springboot的点餐平台

基于SpringbootVue的点餐平台的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页展示 菜品信息 菜品资讯 购物车 后台登录 用户管理 菜品分类管理 菜品信息管理 …

#ESP32S3N8R8(按键点灯)

一、按键对应端口为GPIO0&#xff08;上拉&#xff09; 二、代码 #include <stdio.h> #include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "unistd.h"void app_main(void) {int co…

YOLOv8 实现车牌检测,生成可视化检测视频(20240424)

原项目源码地址&#xff1a;GitHub 我的源码地址&#xff1a;Gitee 环境搭建请参考&#xff1a;Win10 搭建 YOLOv8 运行环境&#xff08;20240423&#xff09;-CSDN博客 环境测试请参考&#xff1a;本地运行测试 YOLOv8&#xff08;20240423&#xff09;-CSDN博客 训练数据…

【java数据结构-优先级队列向下调整Topk问题,堆的常用的接口详解】

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a;基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 …

OpenHarmony实战开发-媒体查询 (@ohos.mediaquery)

概述 媒体查询作为响应式设计的核心&#xff0c;在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。媒体查询常用于下面两种场景&#xff1a; 针对设备和应用的属性信息&#xff08;比如显示区域、深浅色、分辨率&#xff09;&#xff0…

异步日志方案spdlog

异步日志方案spdlog spdlog 是一款高效的 C 日志库&#xff0c;它以其极高的性能和零成本的抽象而著称。spdlog 支持异步和同步日志记录&#xff0c;提供多种日志级别&#xff0c;并允许用户将日志输出到控制台、文件或自定义的接收器。 多线程使用和同步、异步日志没有关系是…

Linux系统----信号(万字文章超级详细并且简单易学附有实操shell指令图及注释!)

绪论​ “Do one thing at a time, and do well.”&#xff0c;本章开始Linux系统其中信号是学习操作系统的基本下面将会讲到什么是信号、信号的多种产生方式、信号如何保存的、信号如何处理的、以及一些信号的细节。话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑…

【鸿蒙】通知

一、概要 Android的Notification。 说到通知&#xff0c;就想到了推送。 通知这块可以做到不像Android一样需要集成各家厂商的推送了&#xff0c;不知道是否有建立独立的推送系统 这是官网上介绍的跨APP进行的IPC通知。实际在Android开发过程中&#xff0c;可能这种场景会相对…

MarginNote 3 for Mac:一站式思维导图与笔记神器,让学习更高效

MarginNote 3 for Mac是一款功能强大的阅读和学习工具软件&#xff0c;它将PDF/EPUB阅读器和多种学习工具集成起来&#xff0c;旨在帮助用户更有效地进行阅读、笔记整理以及知识管理。 这款软件的核心功能在于其能够将阅读与学习过程紧密结合。用户可以在阅读文档时&#xff0…

勒索软件安全防护手册

文章目录 相关背景勒索软件概述勒索软件主要类型文件加密类勒索软件数据窃取类勒索软件系统加密类勒索软件。屏幕锁定类勒索软件 勒索软件典型传播方式利用安全漏洞传播利用钓鱼邮件传播利用网站挂马传播利用移动介质传播利用软件供应链传播利用远程桌面入侵传播 典型勒索软件攻…

自动驾驶传感器篇: GNSSIMU组合导航

自动驾驶传感器篇&#xff1a; GNSS&IMU组合导航 1.GNSS1.1 GNSS 系统概述1.2 GNSS系统基本组成1. 空间部分&#xff08;Space Segment&#xff09;&#xff1a;2. 地面控制部分&#xff08;Ground Control Segment&#xff09;&#xff1a;3. 用户设备部分&#xff08;Use…