有趣有历史的浏览器UA(user-agent)

本文解析了主流浏览器的User-Agent(UA),展示了不同浏览器UA的具体格式,并探讨了UA中包含Mozilla字样这一有趣现象的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主流的UA

以前研发浏览器的时候都没有想到浏览器的UA还有一段有趣的历史的,直到今天处理一个UA的问题,才得于让自己有机会切换到浏览器使用者的视角去查找资料与文档,去重新认识它。以下 UA copy自User-Agent Switcherfor Chrome是插件的默认UA

浏览器User-Agent
Internet Explorer 10Mozilla/5.0 (MSIE 10.0; Windows NT 6.1; Trident/5.0)
Internet Explorer 6Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; WOW64; Trident/4.0; SLCC1)
iPhone 6Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25
Android KitKatMozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36
Windows Phone 8Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
Windows Firefox 33Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20120101 Firefox/33.0
Opera 12.14Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14
Mac Safari 7Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A

如上所示,一个很明显又有趣的现象是IE,Safari等大多当我浏览器的的UA都包含有Mozilla字样的!

UA的规范

这里写图片描述

这里写图片描述

UA的“进化”

这篇译文翻译得很赞[浏览器user-agent简史推荐大家阅读 。
原汁原味的在这里History of the browser user-agent string
浏览器UA的进化史的一句话总结是

user-agent字符串变得越来越复杂,也越来越让人摸不着头脑,只因为各个浏览器在争相“佯装”对方。

为什么要“佯装”,目的还是希望从服务器获取到最合适的页面,给用户更好的浏览体验吧!不足之处是网站开发者要面对一堆形形色色的UA。

参考资源

浏览器或网络爬虫程序中设置User-Agent是一个常见的策略,因为网站服务器通常会根据这个信息来识别访问者是哪种类型的客户端。要设置随机的User-Agent字符串,你可以按照以下步骤操作: 1. **编程语言设置**: - **JavaScript (网页脚本)**: 可以使用`navigator.userAgent`属性获取当前浏览器的默认User-Agent,然后使用一些库(如`random-useragent`)生成随机值替换它。例如: ```javascript const userAgent = randomUserAgent({ browsers: ['Chrome', 'Firefox'] }); document.querySelector('head').appendChild( new Link({ rel: 'stylesheet', type: 'text/css', href: `data:text/css;charset=utf-8,user-agent: ${userAgent}` }) ); ``` - **Python (requests库)**: 使用`fake_useragent`库来生成随机User-Agent: ```python from fake_useragent import UserAgent ua = UserAgent() headers = {'User-Agent': ua.random} response = requests.get('http://example.com', headers=headers) ``` 2. **配置环境变量**:有些工具允许你在启动时通过环境变量指定User-Agent,比如在Node.js中: ```bash NODE_USER_AGENT=random-useragent chrome,safari node your_script.js ``` 3. **自定义User-Agent列表**:为了更精准地模拟不同设备或浏览器,你可以创建一个包含多种常见User-Agent的数组,每次从这个数组中随机选取一个作为新的User-Agent。 记得设置User-Agent时尽量模拟真实的浏览器行为,过于频繁地改变User-Agent可能导致反爬虫机制触发。同时,尊重网站的Robots协议,不要滥用这种技术去抓取禁止爬取的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值