最近在学习网络爬虫的东西,使用Jsoup来解析html文档,在发出http请求的过程中需要配置用户代理这一属性,所以想具体了解一下。虽然已接触javaweb开发两年了,对http协议头也有一定的了解,但也只是停留在表面。下面转载一篇文章,希望大家共同学习。原文链接:http://blog.csdn.net/w6299702/article/details/41081225

用户代理(User Agent)是用来表明浏览用户的身份,让网页开发者可以得知访问终端的信息。根据不同的终端发送不同的显示内容,例如桌面版和移动版发送不同的网页内容以适应屏幕和操作系统的差别(即响应式网页的理解),或者是因为不同的浏览器支持的标准不一样,这样做的目的当然是为了避免浏览器不支持的功能以及获得更好的用户体验。
随着浏览器市场的竞争愈加激烈,网页开发者会根据最流行的浏览器,设计一个用户体验最好的网站。这对其他浏览器来说是一种打击, 所以他们也会很快完善自身的缺陷,希望可以支持这些用户体验好的网页效果。
最初是 Mozilla Firefox 浏览器设置了自己的用户代理字符串,例如“Mozilla/1.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101Firefox/4.0.1”,此字符串表明这是一个 Windows 版的使用 Gecko 引擎(火狐浏览器内核)的火狐浏览器。
随后IE发现自己的展示的网页效果没有Firefox丰富,于是发布了兼容Firefox的User Agent,看一下IE 的用户代理设置就能明白——“Mozilla/4.0 (compatible;MSIE 7.0; Windows NT 6.0)”。这个字符串的含义是什么呢?它表明这是一个可以和 Mozilla 兼 容的 Windows 版 IE7 浏览器。这样,内容提供商会根据“Mozilla”字符串信息,将发 送给 Firefox 浏览器的内容也发送给 IE 浏览器,因为在他们看来,这些都是“Mozilla” 的浏览器。

此后,浏览器市场,越加竞争激烈,为了相互兼容。苹果的 Safari 浏览器也设 置了类似的代理,但是该浏览器额外加入了 AppleWebKit、Safari 等信息,随着它的 流行(特别是移动领域),Chrome 等浏览器除了包含 Mozilla 之外,还添加了 Safari 浏览器的那些标志信息,导致它的用户代理字符串越来越长。

看一下Chrome的User-Agent


这里可以看出来,该Chrome是MAC的发布版,采用了兼容了Mozilla,Safari,内核兼容AppleWebkit和Gecko

1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36

看一下火狐的User-Agent


可以看出来,该Firefox为Windows平台的发布版,内核为Firefox的自家内核Gecko

1
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0

看一下Mac上的Safari


看出来,兼容了Mozilla,为Mac系统的发布版,采用自家的Webkit内核(Apple)

1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14

最后是IE的User-Agent


看出来,兼容了Mozilla,采用兼容模式的IE10,采用自家的Trident内核

1
User-Agent:Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)

模拟移动设备

我们这里可以模拟一个移动设备来查看一下,显示效果,模拟设备,Galaxy Note II ,通过该设备向服务端发送请求

请求标头,

1
User-Agent:Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

由于网页已经经过移动设备的显示处理,所以,出现了宽度自适应的显示界面。

一切这些繁琐的User-Agent,都是为了更好的网页内容体验。 从上面几个主流浏览器,可以看出,因为某种浏览器的流行,很多网页内容提供商和网站需要根据流行的浏览器来定制内容,当后来者需要相同内容的时候,就只能是通过这些用户代理的信息来模仿获得。

浏览器的用户代理(User-Agent)相关推荐

  1. 浏览器模式用户代理字符串(IE)

    问题 问题描述 今天在做项目的时候,QA部门提了一个Bug,在一个搜索列表中,搜索栏为空时刷新页面,却触发了搜索功能,并且列表显示出<未搜索到结果> 环境 IE11 问题原因 QA的IE1 ...

  2. 浏览器用户代理_什么是浏览器的用户代理?

    浏览器用户代理 Your browser sends its user agent to every website you connect to. We've written about chang ...

  3. Windows 系统IE各版本浏览器的用户代理字符串

    Windows 系统IE各版本浏览器的用户代理字符串 IE9:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0 ...

  4. 理解一个名词:用户代理(user agent)

    文/牛海彬 原文: The term user agent and the lack of understanding what a user agent is can also be a probl ...

  5. 杂谈——常用的浏览器请求头User - Agent大全

    欢迎关注WX公众号:[程序员管小亮] 如果急需使用的话,直接用目录调到后面即可:如果不是急需使用的话,可以看看基础. 目录 欢迎关注WX公众号:[程序员管小亮] 一.基础 二.代码 三.第三方库 参考 ...

  6. 各浏览器的用户代理字符串整理

    每个浏览器都有它自己的用户代理(user agent)字符串,里面包含了浏览器和操作系统等信息.通过使用这个字符串,我们可以处理跨浏览器的差异.用户代理字符串保存在 JavaScript 的 navi ...

  7. 各浏览器User-Agent用户代理字符串整理

    一.基础知识篇: HttpHeader之User-Agent UserAgent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,UserAgent也简称UA.它是一个特殊字符串头,是一 ...

  8. 屏蔽浏览器默认样式 user agent stylesheet

    user agent stylesheet <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  9. 1500个用户代理User agent,用于随机UA代理

    采集自https://developers.whatismybrowser.com/useragents/explore/ "Mozilla/5.0 (Windows NT 5.1; rv: ...

最新文章

  1. Linux中的输入输出管理
  2. 软考培训 - 上海2班开课剪影
  3. oracle适配器接口,Oracle
  4. 从零开始学C++之继承(一):公有/私有/保护继承、overload/overwrite/override之间的区别...
  5. mysql 每条记录大小_计算数据库中各个表的数据量和每行记录所占用空间
  6. java 实体字段变更记录_java – Hibernate:检查哪个实体的字段被修改
  7. c# rar压缩解压缩
  8. 计算机自带扫雷游戏玩不了,Win7 32位系统扫雷游戏打不开如何解决【图文教程】...
  9. nacos指定外网ip
  10. 无人机“风袭”黄冈|战疫日记
  11. Connection closed prematurely
  12. windows无法格式化u盘_U 盘格式化提示 windows 无法完成格式化的解决办法
  13. 华硕美版路由器RT-AC1200G+解决无线信号弱问题
  14. Android OS历史版本
  15. 天翼阅读倾情回馈——《海盗鬼皮书》限时免费畅读
  16. Android极速从视频里提取音频
  17. cisco路由器各接口模块代表的含义是什么
  18. 图学习02—图神经网络的发展
  19. IDEA引入WebService接口
  20. iOS一键搞定自动打包并发布到AppStore和Fir

热门文章

  1. 英语学习果然是要靠坚持
  2. 小程序图片作为背景图无法铺满的问题
  3. 小黑仿生轮腿机器人(二)-机器视觉
  4. mysql参考手册官方版(中文)
  5. 5.4.1 虚拟专用网VPN
  6. Google Earth Engine 下载遥感影像——以Landsat 8数据为例
  7. 【星曈科技】OpenMv笔记——利用OpenMV与STM32进行串口通信
  8. 网站推广88个金牌方法(2008奥运会金牌榜版)
  9. html鼠标自定义悬浮窗,【推荐】js+DIV悬浮窗定位到鼠标位置的源代码
  10. 对比一下优质【测试报告】模板与你自己的有何不同?