一、http
超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。
二、http报文
用于HTTP协议交互的信息被称为HTTP报文。客户端的HTTP报文叫做请求报文,服务器端的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。HTTP报文大致可分为报文首部和报文主体两块。两者由最初出现的空行来划分。通常,并不一定要有报文主体。
三、http请求报文
请求报文由四部分组成:请求行、请求头、空行、请求数据
- 请求真实数据
请求行:
①是请求方法,GET和POST是最常见的HTTP请求方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE
②是请求对应的url地址:与请求头(报文头)的Host属性组成完整的URL
③是http协议和版本号
请求头(报文头):报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
- Client-IP:提供了运行客户端的机器的IP地址
- From:提供了客户端用户的E-mail地址
- Host:给出了接收请求的服务器的主机名和端口号
- Referer:提供了包含当前请求URI的文档的URL
- UA-Color:提供了与客户端显示器的显示颜色有关的信息
- UA-CPU:给出了客户端CPU的类型或制造商
- UA-OS:给出了运行在客户端机器上的操作系统名称及版本
- User-Agent:将发起请求的应用程序名称告知服务器
- Accept:告诉服务器能够发送哪些媒体类型
- Accept-Charset:告诉服务器能够发送哪些字符集
- Accept-Encoding:告诉服务器能够发送哪些编码方式
- Accept-Language:告诉服务器能够发送哪些语言
- TE:告诉服务器可以使用那些扩展传输编码
- Expect:允许客户端列出某请求所要求的服务器行为
- Range:如果服务器支持范围请求,就请求资源的指定范围
- Cookie:客户端用它向服务器传送数据
- Cookie2:用来说明请求端支持的cookie版本
请求数据(请求体):主要还是传递请求参数,请求URL也可以通过类似的方式传递请求参数
四、http响应报文
- http响应报文也由四部分组成: 响应行(状态行)、响应头、空行、响应数据
- 真实数据
响应行(状态行):
①http协议及版本号
②http状态码及状态描述
响应头:
- Age:(从最初创建开始)响应持续时间
- Public:服务器为其资源支持的请求方法列表
- Retry-After:如果资源不可用的话,在此日期或时间重试
- Server:服务器应用程序软件的名称和版本
- Title:对HTML文档来说,就是HTML文档的源端给出的标题
- Warning:比原因短语更详细一些的警告报文
- Accept-Ranges:对此资源来说,服务器可接受的范围类型
- Vary:服务器会根据这些首部的内容挑选出最适合的资源版本发送给客户端
- Proxy-Authenticate:来自代理的对客户端的质询列表
- Set-Cookie:在客户端设置数据,以便服务器对客户端进行标识
- Set-Cookie2:与Set-Cookie类似
- WWW-Authenticate:来自服务器的对客户端的质询列表
响应数据:传给客户端的数据