HTTP协议
当谈到HTTP协议*(Hypertext Transfer Protocol)*,我们实际上是在谈论在Web上进行数据传输的一种规范。HTTP协议是一种客户端-服务器协议,用于在Web浏览器和Web服务器之间传输数据。它是Web的基础,并且在Web应用中起着至关重要的作用。
HTTP/0.9:
- HTTP的最早版本,1991年首次发布。
- 非常简单,只能传输纯文本的HTML文件。
- 每个请求都是一个单独的TCP连接,请求后服务器会立即返回响应并关闭连接。
HTTP/1.0:
- 1996年发布,引入了更多功能和灵活性。
- 支持多种数据格式,不再局限于HTML。
- 引入了请求头和响应头,以及HTTP状态码(如200、404)。
- 支持持久连接,即一个连接可以传输多个请求和响应,减少了连接的开销。
HTTP/1.1:
- 1999年发布,是当前广泛使用的版本。
- 引入了许多性能优化,如复用连接、流水线化请求等。
- 支持虚拟主机,使得一台服务器可以托管多个域名。
- 引入了缓存控制、压缩传输、分块传输编码等特性,提升了效率。
HTTP/2:
- 2015年发布,着重于性能优化。
- 使用二进制格式而非文本,更高效地解析。
- 多路复用:一个连接上可以并行传输多个请求和响应,减少了延迟。
- 首部压缩:减少了重复的头信息传输。
- 服务器推送:服务器可以在客户端请求之前主动推送资源,提高加载速度。
HTTP/3:
- 2020年发布,正在逐步普及。
- 基于QUIC协议,以UDP为基础,旨在解决TCP的一些问题。
- 改进了性能和安全性,尤其在高延迟网络环境中更加优秀。
- 引入了快速握手和连接迁移,提升了连接的建立速度和稳定性。
Method
在Java也有Method,Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function)。对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代码放在一个大括号“{}”当中,并且起一个名字。使用代码的时候,直接找到名字调用即可。
而在HTTP标准中,Method是HTTP的请求方法、
状态码
HTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。 响应被归为以下五大类:
- 信息响应 (
100–199) - 成功响应 (
200–299) - 重定向消息 (
300–399) - 客户端错误响应 (
400–499) - 服务端错误响应 (
500–599)
缓存
强缓存:
Expires,时间戳
Cache- Control:
可缓存性:
no-cache :协商缓存验证
no-store :不使用任何缓存
到期:
max-age :单位是秒,存储的最大周期,相对于请求的时间
重新验证*重新加载:
must-revalidate :一旦资源过期,在成功向原始服务器验证之前,不能使用
协商缓存
Etag/lf-None-Match :资源的特定版本的标识符,类似于指纹
Last- Modified/lf- Modified-Since :最后修改时间