PUT 和 PATCH 都是更新资源,而 PATCH 用来对已知资源进行局部更新。如果发送修改信息是全量覆盖就是用 PUT, 如果只是部分修改则使用 PATCH。
GET /index.hmtl HTTP/1.1
)HTTP/1.1 200 OK
)302 是 http 1.0 的协议状态码,在 http 1.1 版本的时候为了细化 302 状态码又新增 303 和 307。
在早期的 HTTP/1.0 中,每次 HTTP 请求都要创建一个连接,而创建连接的过程需要消耗资源和时间,为了减少资源消耗,缩短响应时间,就需要重用连接。
后来的 HTTP/1.0 以及 HTTP/1.1 中,引入了重用连接的机制,就是在 http 请求头中加入 Connection:keep-alive
来告诉对方这个请求响应完后不要关闭,下次可以继续使用。
协议规定 HTTP/1.0 如果想要保持长连接,需要在请求头中加上 Connection: keep-alive
优点:
HTTPS 是安全版的 HTTP,因为 HTTP 协议的数据是明文进行传输的,所以对于一些敏感信息的传输就很不安全,HTTPS 目的就是解决 HTTP 的安全问题出现的。
对称加密:即通信双方都是用同一个密钥进行加解密。对称加密虽然简单性能也好,但是无法解决首次把密钥发给对方的问题,很容易被拦截密钥。
非对称加密:
非对称加密虽然安全性更高,但是带来的问题就是速度很慢,影像性能
结合两种加密方式,将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方使用对称加密来进行沟通。
但是会引入新的问题,中间人问题:
如果此时在客户端和服务器端存在一个中间人,这个中间人只需要把原本双方通信互发的公钥,换成自己的公钥,这样中间人就可以轻松解密通信双方所发送的所有数据。
所以此时需要一个安全的第三方颁发证书(CA),证明身份防止被中间人攻击。证书包括:签发者、证书用途、使用者公钥、使用者私钥、使用者的 HASH 算法、证书到期时间等。
但是,如果中间人篡改了证书,那么身份证明就无效了,此时需要一个新的技术——数字签名。数字签名,就是用 CA 自带的 HASH 算法对证书的内容进行 HASH 得到一个摘要,再用 CA 的私钥加密,最终组成数字签名。
当别人把证书发过来的时候,再用同样的 Hash 算法,再次生成消息摘要,然后用 CA 的公钥对数字签名解密,得到 CA 创建的消息摘要,两者进行比较,就知道中间有没有人被篡改了。
可以理解为只发送差异数据,而不是全部发送,从而减少头部的信息量
步骤:
Cache-Control: max-age=315360000
) 在缓存有效期内命中缓存,浏览器会直接读取本地的缓存资源,当缓存过期之后会与服务器进行协商
服务器判断缓存是否是新鲜的方法就是依靠 HTTP 的另外两组信息