和其他的众多协议相同HTTP协议用于客户端和服务器端之间的通信,应用HTTP协议时必定是一端担任客户端的角色一端担任服务器端的角色。
1、通过请求和响应的交换达成通信
请求从客户端发出,而服务器端回复响应。
请求报文——由请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
(1)请求行:包括请求方法、请求URI、协议版本。(HTTP使用URI定位互联网上的资源)
(2)请求首部字段:紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息。内容是可选 的。
具体分作:
请求首部字段:
通用首部字段:
实体首部字段:
(3)空行:请求首部字段后面的空行是必须的。即使第四部分的请求数据为空,也必须有空行。
(4)内容实体:请求数据也叫主体,可以添加任意的其他数据。
响应报文——协议版本、状态码、用于解释状态码的原因短语、可选的响应首部字段、实体主体构成的。
(1)状态行:包括请求方法、请求URI、协议版本。(HTTP使用URI定位互联网上的资源)
(2)响应首部字段:用来说明客户端要使用的一些附加信息,内容是可选的。
具体分作:
响应首部字段:
通用首部字段:
实体首部字段:
(3)空行:响应首部字段后面的空行是必须的。即使第四部分的请求数据为空,也必须有空行。
(4)内容实体:服务器返回给客户端的文本信息。
2、HTTP是不保存状态(无状态)的协议
HTTP协议自身不保存之前发送过的请求或是响应的功能,但是为了实现期望的保持状态功能,于是引入了Cookie技术。
3、用于告知服务器意图的HTTP请求方法
方法 | 作用 | 支持的HTTP协议版本 |
GET | 请求访问已被URI的识别的资源 | 1.0、1.1 |
POST | 传输实体的主体(GET也是可以的,但一般不用GET)主要目的不是获取响应的主题内容 | 1.0、1.1 |
PUT | 用于传输文件,文件保存到请求URI指定的位置 | 1.0、1.1 |
HEAD | 获得报文首部,和GET方法一样只是不返回报文主体内容 | 1.0、1.1 |
DELETE | 删除URI指定的位置的资源 | 1.0、1.1 |
OPTIONS | 查询针对URI指定的资源支持方法 | 1.1 |
TRACE | 让服务器将之前的请求通信返回给客户端的方法 | 1.1 |
CONNECT | 要求在于代理服务器通信时建立隧道,实现用隧道协议进行TCP通信 | 1.1 |
LINL/UNLIN ,在1.1已经被废弃。
其中关键的是区分get和post方法的区别。详细戳这里。