了解HTTP Header之User-Agent和HTTP协议的响应码

搞移动互联网测试,为什么涉及web相关内容呢?当然是因为移动互联网的产品也会直接涉及web的部分,主要是两部分:

1>M站,即触屏版,Touch版

2>很多APP都是混合方式,既有原生的代码,也有内嵌的网页

针对第一方面,M站,在PC浏览器和手机浏览器上输入同一个网站的同样的URL,返回的内容完全不同,主要是考虑手机屏幕的大小和流量等情况,返回专门的M版本。

那这个是怎么做到的呢?就涉及到了User-Agent这个HTTP Header字段,以及HTTP协议的302响应码对应的跳转机制。

一、HTTP  Header之User Agent

User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计;例如用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的UA来判断的。UA可以进行伪装。

浏览器的UA字串的标准格式:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识版本信息。但各个浏览器有所不同。

字串说明:

1、浏览器标识 出于兼容及推广等目的,很多浏览器的标识相同,因此浏览器标识并不能说明浏览器的真实版本,真实版本信息在 UA 字串尾部可以找到。

2、操作系统标识 user-agent的操作系统标识

3、加密等级标识 N: 表示无安全加密 I: 表示弱安全加密 U: 表示强安全加密

4、浏览器语言 在首选项 > 常规 > 语言中指定的语言

5、渲染引擎 显示浏览器使用的主流渲染引擎有:Gecko、WebKit、KHTML、Presto、Trident、Tasman等,格式为:渲染引擎/版本信息

6、版本信息 显示浏览器的真实版本信息,格式为:浏览器/版本信息

注: 1、在广告定向设定中,浏览器定向和操作系统定向均是针对User-Agent中的信息进行定向。 2、欲了解更多的User-Agent信息,请参考User-agent 字串史

二、响应码

响应头对浏览器来说很重要,它说明了响应的真正含义。例如200表示响应成功了,302表示重定向,这说明浏览器需要再发一个新的请求。

l  200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;

l  404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;

l  500:请求资源找到了,但服务器内部出现了错误;

l  302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;

l  304:当用户第一次请求index.html时,服务器会添加一个名为Last-Modified响应头,这个头说明了index.html的最后修改时间,浏览器会把index.html内容,以及最后响应时间缓存下来。当用户第二次请求index.html时,在请求中包含一个名为If-Modified-Since请求头,它的值就是第一次请求时服务器通过Last-Modified响应头发送给浏览器的值,即index.html最后的修改时间,If-Modified-Since请求头就是在告诉服务器,我这里浏览器缓存的index.html最后修改时间是这个,您看看现在的index.html最后修改时间是不是这个,如果还是,那么您就不用再响应这个index.html内容了,我会把缓存的内容直接显示出来。而服务器端会获取If-Modified-Since值,与index.html的当前最后修改时间比对,如果相同,服务器会发响应码304,表示index.html与浏览器上次缓存的相同,无需再次发送(节省传输成本),浏览器可以显示自己的缓存页面,如果比对不同,那么说明index.html已经做了修改,服务器会响应200。

相关文章:

http://www.360doc.com/content/12/1012/21/7662927_241124973.shtml

http://blog.csdn.net/u012110719/article/details/46324191

原文地址:https://www.cnblogs.com/sonice-cinsy/p/5795033.html