通过请求和响应的交换完成通信
客户端发送的请求报文有请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成;
服务器返回的响应报文由协议版本、状态码、解释状态码的原因短语、可选的响应首部字段以及实体主体
HTTP是不保存状态的协议
HTTP协议自身不具备保持之前发送过的请求或响应的功能;
请求URI定位资源
指定请求URI的方式有很多
- URI为完整的请求URI
GET http://hell.com/index.html HTTP/1.1
- 在首部字段host中写明网络域名或IP地址
GET /index.html HTTP/1.1
Host: hell.com
告知服务器意图的HTTP方法
- GET:获取资源
- POST:传输实体主体
- PUT:传输文件
- DELETE:删除文件
- HEAD:获得报文头部,与GET一样,但是不返回报文主体内容;
- OPTIONS:询问支持的方法,响应GET, POST...
- TRACE:追踪路径
- CONNECT:要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL和TSL协议进行加密;
持久连接节省通信量
- 持久连接
只要任意一端没有明确提出断开连接,则保持TCP连接状态 - 管线化
不用等待相应即可发送下一个请求
使用cookie的状态管理
Cookie根据服务器端发送的响应报文中的一个叫做Set-Cookie的头部字段信息,通知客户端保存Cookie;
下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值发送;
服务器端发现客户端发送过来的Cookie后,会进行检查对比,得到状态信息;