hmtl报文解析

博客连接:
https://www.cnblogs.com/kissdodog/archive/2013/01/11/2856335.html

1.请求头部

User-Agent:浏览器的具体类型  如:User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0

Accept:浏览器支持哪些数据类型  如:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8

Accept-Charset:浏览器采用的是哪种编码  如:Accept-Charset: ISO-8859-1

Accept-Encoding:浏览器支持解码的数据压缩格式  如:Accept-Encoding: gzip, deflate

Accept-Language:浏览器的语言环境  如:Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。Host:www.baidu.com

Connection:表示是否需要持久连接。Keep-Alive/close,HTTP1.1默认是持久连接,它可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content-Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。如:Connection: Keep-Alive
    Content-Length:表示请求消息正文的长度。对于POST请求来说Content-Length必须出现。
    Content-Type: application/x-www-form-urlencoded
    这是将表单的内容使用uri的编码进行编码urlencoded,这个url标准中使用的utf-8编码成对应的16进制字符串,在加一个%进行转义,但是html的标准中没有规定要求一定要使用utf-8来编码。所以还是统一使用utf-8的吧。
    注意:只有form表单会自动帮你uri编码
    a标签的超链接不会帮你转的!自己转uri编码。
    举个例子:
    “春节”这个两个汉字,转化为utf-8编码并且使用16进制表示就是这样的!然后uri规定了%后面跟着两个16进制的数字,表示一个字符的8位、
    一个‘’春‘’字有3个字节所以 就要三个%%%才能表示
    两个字 就转化为如下,借一下某这个网页图片。
    http://www.imooc.com/wenda/detail/529914hmtl报文解析_第1张图片

响应头部:
Content-Length:表示请求响应正文的长度。

Content-Type:WEB服务器告诉浏览器自己响应的对象的MIME类型和字符集。MIME是指网络传输的媒体类型。例如:Content-Type: text/html; charset=‘gb2312’ 这个后面的字符集是指问你前面的这个。类型是文本格式的话,那么你需要带一个文本的解析编码。现在很多浏览器一般。我不会传递这个编码。因为HTML文件里面。有一个meta标签可以指定。这个文件的编码格式。

Content-Encoding:WEB服务器表明自己使用了什么压缩方法(gzip,deflate)压缩响应中的对象。例如:Content-Encoding:gzip

Content-Language:WEB服务器告诉浏览器自己响应的对象的语言。

Cookie:最常用的请求头,浏览器每次都会将cookie发送到服务器上,允许服务器在客户端存储少量数据。
    有些浏览器是这样写的:Set-cookie:

Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。服务器能知道你是从哪个页面过来的。Referer: http://www.baidu.com/ 这东西可以获取你上一个浏览的网页。这个可以用于过滤嘻嘻!不是本服务器过来的都不给信息。可以起到防盗链接的作用!
    也可以用这个来统计,我在百度做的广告,有多少的访问量是从百度过来,或者从其他地方过来的,我的网页广告从哪个地方来的最多。
   
   
Server:这是服务器的名称和版本。

Date:这个响应报文的响应时间。

你可能感兴趣的:(http)