User Agent的学习
什么是User-Agent?
User-Agent是一个特殊字符串头,被广泛用来标示浏览器客户端的信息,使得服务器能识别客户机使用的操作系统和版本,CPU类型,浏览器及版本,浏览器的渲染引擎,浏览器语言等。
不同的浏览器(IE,FF,Opera, Chrome等)会用不同的用户代理字符串(User Agent Strings)作为自身的标志,当搜索引擎(Google,Yahoo,Baidu,Bing)在通过网络爬虫访问网页时,也会通过用户代理字符串来进行自身的标示,这也是为何网站统计报告能够统计浏览器信息,爬虫信息等。网站需要获取用户客户端的信息,了解网站内容在客户端的展现形式,一些网站通过判断UA来给不同的操作系统,不同的浏览器发送不同的页面,不过这也可能造成某些页面无法再某个浏览器中正常显示.
用户代理字符串包括6个不同个部分:
如下:
Mozilla/5.0(compatible;X11;U;Linux i686;en-US) Gecko/20081202 Firefox(Debian-2.0.0.19-0etch1)
- Mozilla/5.0 浏览器标志:包括应用名Mozilla和版本号5.0;
- compatible 浏览器兼容标志:表示支持主要功能集
- U 加密标志:该字段逐步被取消(N表示无安全加密,I表示弱安全加密,U表示强安全加密)
- Linux i686 操作系统标志:linux
- en-US 语言标志:英文
- Gecko/20081202 渲染引擎标志:Gecko
- Firefox(Debian-2.0.0.19-0etch1) 浏览器版本信息:firefox
为什么浏览器User-agent总是有Mozilla字样?
User-agent String里的历史故事:http://nonfu.me/p/8262.html#6704859-tsina-1-74270-c5f225ba0edaae7b53a5eca6ead5f75f
User-Agent的简单用法:
- 当用户使用FF访问一个网站时,网站通过用户代理字符串获取该用户的浏览器版本,当发现该版本的FF无法完美展现网站内容时,就提出个性化的提示,升级浏览器来展现最新的WebGL 和HTML5内容
- 网站可以根据用户代理字符串给出不同的css文件,保证在不同的浏览器上都展示出最好的效果。
- 伪装 user agent 来回避某些侦测特定浏览器才能读取的网站。
以上转自:http://www.360doc.com/content/14/0218/02/15723785_353395087.shtml
获取User-agent值:
在JAVA中使用 request.getHeader("User-Agent")得到浏览器的User-Agent
PHP中用$_SERVER[HTTP_USER-AGENT]获得
JS中用navigator.userAgent获得。
在 ASP.NET 中使用 Request.Header["User-Agent"] 得到。
修改常见浏览器UA的方法:http://www.zhixing123.cn/jiaocheng/40469.html
Chrome伪装UA的方法绕过检测。具体方法:http://blog.csdn.net/iceman03/article/details/20528771
其他扩展阅读:
User-agent 字串史: http://www.kuqin.com/shuoit/20150312/345160.html,
http://www.cnblogs.com/egger/archive/2013/04/20/3032070.html
各大搜索引擎的User-Agent: http://www.cnblogs.com/iack/p/3557371.html
手机浏览器的User-agent:http://blogread.cn/it/article/4063?f=wb
各大浏览器各版本User-agent汇总:http://weibo.com/p/230418ac467e560102vebj
注:本文中很多内容已经有网友做过总结,在学习UA的过程中,搜集下来的一些比较好的,也不复制粘贴了,相关链接可以参考。(我是勤劳的搬运工~^~)
User Agent的学习的更多相关文章
- 强化学习之七:Visualizing an Agent’s Thoughts and Actions
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 机器学习&深度学习基础(tensorflow版本实现的算法概述0)
tensorflow集成和实现了各种机器学习基础的算法,可以直接调用. 代码集:https://github.com/ageron/handson-ml 监督学习 1)决策树(Decision Tre ...
- 深度学习课程笔记(七):模仿学习(imitation learning)
深度学习课程笔记(七):模仿学习(imitation learning) 2017.12.10 本文所涉及到的 模仿学习,则是从给定的展示中进行学习.机器在这个过程中,也和环境进行交互,但是,并没有显 ...
- EnforceLearning-主动强化学习
前言: 被动学习Agent由固定的策略决定其行为.主动学习Agent必须自己决定采取什么行动. 具体方法是: Agent将要学习一个包含所有行动结果概率的完整模型,而不仅仅是固定策略的模型: 接下来, ...
- EnforceLearning-被动强化学习
前言: 画图挺好:深度学习进阶之路-从迁移学习到强化学习 专家系统给出了知识节点和规则,使用粒度描述准确性,依靠分解粒度解决矛盾,并反馈知识和推理规则更新.专家系统与机器学习有本质区别,但从机器学习的 ...
- 基于Keras的OpenAI-gym强化学习的车杆/FlappyBird游戏
强化学习 课程:Q-Learning强化学习(李宏毅).深度强化学习 强化学习是一种允许你创造能从环境中交互学习的AI Agent的机器学习算法,其通过试错来学习.如上图所示,大脑代表AI Agent ...
- ML-Agents(二)创建一个学习环境
ML-Agents(二)创建一个学习环境 一.前言 上一节我们讲了如何配置ML-Agents环境,这一节我们创建一个示例,主要利用Reinforcement Learning(强化学习). 如上图,本 ...
- 强化学习之六:Deep Q-Network and Beyond
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
- 强化学习之四:基于策略的Agents (Policy-based Agents)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...
随机推荐
- [Oracle]分区索引
上一节学习了分区表,接着学习分区索引. (一)什么时候对索引进行分区 · 为了避免移动数据时重建整个索引,可对索引分区,在重建索引时,只需重建与数据分区相关的索引: · 在对分区表进行维护时,为了避免 ...
- chrome中的network面板,怎么添加method(请求类型)选项.
- 你不知道的javaScript笔记(1)
规避冲突 function foo(){ function bar(a){ i = 3; console.log(a + i); } for ( var i=0; i < 10; i++){ b ...
- Vmware+CentOs7+共享目录
首先下载VMware和CentOs7的镜像 安装VMware我是参考的https://www.cnblogs.com/wuyx/p/7246675.html,已经非常详细了 然后需要配置网络了 参考 ...
- Struts2进阶学习3
Struts2进阶学习3 OGNL表达式与Struts2的整合 核心配置文件与页面 <?xml version="1.0" encoding="UTF-8" ...
- 【linux运维递进】
================================云计算和虚拟化=================================== docker openstack svn git ...
- FastDFS轻量级分布式文件系统部署
FastDFS介绍 FastDFS 是一个由 C 语言实现的开源轻量级分布式文件系统,作者余庆,支持 Linux.FreeBSD.AID 等 Unix 系统,解决了大数据存储和读写负载均衡等问题,适合 ...
- dedecms织梦首页被篡改 网站被黑被跳转的解决办法建议
2018年的中秋节即将来临,我们Sine安全公司,最近接到很多用dedecms程序的企业公司网站客户的反馈,说是公司网站经常被篡改,包括网站首页的标题内容以及描述内容,都被改成了什么北京赛车,北京PK ...
- ctf题目writeup(5)
2019.2.1 今天继续bugku的隐写杂项题:题目链接:https://ctf.bugku.com/challenges 1. 这道题下载后用wireshark打开...看了好久也没看出个所以然, ...
- 深入了解jQuery Mobile-1
介绍 jQuery Mobile是一种触控优化的HTML5 UI框架,旨在制作可在所有智能手机,平板电脑和台式机设备上访问的响应式网站和应用程序 移动页面结构 jQuery Mobile站点必须以HT ...