HTTP协议
HTTP是不保存状态的协议。也就是说,HTTP协议对于发送过的请求和响应都不做持久化处理。 但是,在真是的Web环境中,用户登陆状态是需要保存的,否则,每次请求都要做登陆处理,太不合理。为了实现状态持久化,引入了Cookie技术,后续,又利用Token做身份验证。
身份验证这部分会以专题形式在高级篇展开讲解。
HTTP方法
方法 | 介绍 |
---|---|
GET | 获取资源 |
POST | 传输实体主体 |
PUT | 传输文件/创建,更新资源 |
HEAD | 和GET类似,但是不返回报文主体部分 |
DELETE | 删除文件 |
OPTIONS | 询问支持的方法(常见于CORS中的pre-flight模式) |
TRACE | 追踪路径,让WEB服务器将之前的请求通信环回给客户端的方法 |
CONNECT | 要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL和TLS 协议把通信内容加密后经网络隧道传输 |
持久连接
在最初的HTTP协议中,没进行一次HTTP通信就要断开一次TCP连接。为了节省通信量,HTTP1.1中推出了持久连接。
建立1次TCP连接后进行多次请求和响应的交互。只要任意一端没有明确的提出断开连接,就保持TCP连接状态。
HTTP/1.1中,所有默认连接都是持久连接。
管线化
持久连接使得管线化发送方式得以实现。从前,发送一个请求后,必须等该请求响应后才能继续发送下一个请求。管线化后,不用等待响应就可以发送下一个请求了。
这样可以做到在一个TCP连接中同时并行发送多个HTTP请求。
使用cookie的状态管理
Cookie会根据从serve发送的response报文内的Set-Cookie首部字段信息,通知客户端保存cookie。 当下次客户端再次往该server发送请求时,客户端会自动在request报文中加入Cookie值,然后发送。