HTTP协议
- HTTP协议用于客户端和服务器端之间的通信
应用http协议必定一端为客户端,一端为服务器端
客户端发送请求,服务器端返回响应
GET /index.htm HTTP/1.1 # 访问服务器的类型+访问资源对象URI+HTTP版本
Host:hacker.jp
HTTP是不保存状态的协议
- HTTP是一种无状态(stateless)协议,自身不会对请求和响应之间的通信进行保存,每当有新的请求发送时,就会有对应的新响应产生
- 目的:更快的处理大量事物,确保协议的可伸缩性
- 缺点:例如用户登录网站,就不能保存登录状态
- 引入:Cookie技术,对通信状态进行保存
请求URI定位信息
- HTTP使用URI定位网络上的资源
- 完整的URI请求:
GET http//hacker.jp/index.htm HTTP/1.1
- 首字段写明域名
GET/index.htm HTTP/1.1
Host: hacker.jp
告知服务器意图的方法
- GET:获取资源,请求已被URI识别的资源
- POST:传输实体主体
- PUT:传输文件
- HEAD:获得报文首部,用于确认URI的有效性以及资源的更新的日期
- DELETE:删除文件
- OPTIONS:询问支持的方法
- TRACE:追踪路径
- CONNECT:要求用隧道协议连接代理
响应:请求成功但无数据返回
持久连接(Keep Alive)
- 建立TCP连接:三次握手
(1)——>SYN——>
(2)<——SYN/ACK<——
(3)——>ACK——>
- HTTP初代时,每进行一次HTTP通信,就要断开一次TCP连接
- 持久连接:
管线化
- 不用等响应,直接连续发送请求
使用Cookie技术进行状态管理
- 无保存状态好处:减少CPU和内存资源
- Cookie技术:通过在请求和响应报文中写入cookie信息,控制客户端状态