POST /client/xxx/xxx/stat/list HTTP/1.1
分成三部分:
(1)POST:HTTP请求方式
(2)/client/xxx/xxx/stat/list:请求的Web服务器接口
(3)HTTP/1.1: URI(Uniform Resource Identifier,统一资源标识符)及其版本
Host
请求的web服务器域名地址,即请求将被发送的目的地。
例如web请求URL为:http://ali-api.demo.com/user/info
Host就为ali-api.demo.com
User-Agent
HTTP客户端运行的浏览器类型的详细信息,通过该头部信息,web服务器可以判断当前HTTP请求的客户端浏览器类别。
我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了我们的操作系统名称和版本,我们所使用的浏览器的名称和版本,服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息,User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
例如: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Accept
代表发送端(客户端)希望接受的数据类型,数据类型中的先后次序表示客户端接收的先后次序。
例如:Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type
内容类型,代表发送端(客户端|服务器)发送的实体数据的数据类型,一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些网页点击的结果是下载一个文件或一张图片的原因。
例如:Content-type: application/x-www-form-urlencoded;charset:UTF-8
有关Content-Type属性值有如下三种编码类型:
(1)“application/x-www-form-urlencoded”
表单数据向服务器提交时所采用的编码类型,默认的缺省值就是“application/x-www-form-urlencoded”。 然而,在向服务器发送大量的文本、包含非ASCII字符的文本或二进制数据时这种编码方式效率很低。
(2)“multipart/form-data”:
在文件上传时,所使用的编码类型应当是“multipart/form-data”,它既可以发送文本数据,也支持二进制数据上传。
当提交为单单数据时,可以使用“application/x-www-form-urlencoded”;当提交的是文件时,就需要使用“multipart/form-data”编码类型。
(3)application/json
现在越来越多的应用使用application/json,用来告诉服务端消息主体是序列化的json字符串。JSON 是一种轻量级的数据格式,以“键-值”对的方式组织的数据。这个使用这个类型,需要参数本身就是json格式的数据,参数会被直接放到请求实体里,不进行任何处理,服务端/客户端会按json格式解析数据(约定好的情况下)。
Accept-Language
浏览器申明自己接收的语言。
语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等
例如: Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Accept-Charset
浏览器可以接受的字符编码集
例如:Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Accept-Encoding
指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式。
Accept-Encoding: gzip,deflate
Connection
表示是否需要持久连接
Connection: keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;
Connection: close 代表一个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,当客户端再次发送Request,需要重新建立TCP连接。
Keep-Alive
显示此HTTP连接的Keep-Alive时间。使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。
以前HTTP请求是一站式连接,从HTTP/1.1协议之后,就有了长连接,即在规定的Keep-Alive时间内,连接是不会断开的。
Keep-Alive: 300
cookie
HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
Referer
表示一个来源,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理。Referer用于所有类型的请求。
例如:http://ali-api.demo.com/courselist/index.html里有一个http://ali-api.demo.com/user/info链接,那么访问http://ali-api.demo.com/user/info请求的header信息里就包含Referer=http://ali-api.demo.com/courselist/index.html
Origin
主要是用来说明最初请求是从哪里发起的,只用于Post请求。
x-requested-with
用于在服务器端判断request来自Ajax请求还是传统请求
如果X-Requested-With为null,则为同步请求;
如果X-Requested-With为XMLHttpRequest,则为Ajax异步请求。