http请求报文结构
http请求报文结构分为,请求行,请求头,空行个请求体
请求报文行:请求方法,请求资源,http协议版本号
报文头:报文头包含若干个属性,核实为键值对格式,服务端会根据此能够获取到客户端的很多信息,比如host地址,connection,UA等
报文体:主要就是传输的数据
http报文头分为4类,分别是:
通用报文头,请求报文头,响应报文头,实体报文头
在http1.1时规范了标准化的47中报文头段
比较常见的:
Accept:浏览器可以接受的媒体类型
Accept:text/html 代表浏览器可以接受服务器返回的类型为text/html的文档,如果服务器无法返回text/html数据,服务器应该返回一个406错误(Non Acceptable)
Accept /:代表浏览器可以处理所有类型的
如果想要给显示的媒体类型增加优先级,则使用q=l 来额外表示权重值;权重值q的范围是0–1(可以精确小数点后三位),且最大值为1,不指定权重值时,默认权重为1.0。当服务器提供多种内容时,会将首先fanhui权重值最高的媒体类型。
Accept-Encoding:浏览器声明自己的、接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)
Accept-Language:浏览器声明自己接收的语言
Accept-Language:zh-cn,zh;q=0.7,en-us,en;q=0.3
客户端在服务器有中文资源的情况下,会请求其返回中文版的对应响应,没有中文版时,则返回英文版响应
Connection
Connection:keep-alive: 当一个网页打开完成后,客户端和服务端之间用于传输HTTP数据的TCP链接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经创建的连接
Connection:close:代表一个request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,客户端再次发送request,需要重新建立TCP连接
Host
请求报头域主要用于指定被请求资源的internet主机和端口号,它通常是从http URL 中提取出来的
Referer
当浏览器想web服务器发送请求时,一般会带上referer,告诉我们服务器是从哪个页面连接过来的,服务器籍此可以获得一些信息用于处理
User-Agent
告诉http服务器,客户端使用操作系统和浏览器名称及版本
很多情况下我们会通过User-Agent来判断浏览器类型,从而进行不同的兼容设计
Content-Type
说明了包文提内对象的媒体类型
text/html:HTML
text/plain:纯文本
text/xml
image/gif:XML
image/jpeg
image/png
application/xhtml+xml:HTML格式
application/xml:XML数据格式
application/atom+xml:Atom XML聚合格式
application/json:json数据格式
application/msword:Word文档格式
application/cotet-stream:二进制数据流(如常见的文件下载)
application/x-www-form-urlencoded:表单提交