HTTP 80
HTTP是一个在计算机世界里专门在【两点】之间【传输】文字、图片、音频、视频等【超文本】数据的约定和规范。
HTTP状态码
- 1xx 提示信息,表示目前是协议处理的中间状态,还需要后续的操作;
- 2xx 200 204 026 成功
- 3xx 重定向,资源位置发生变动,需要客户端重新发送请求
- 4xx 404 客户端错误,请求报文有误,服务器无法处理
- 5xx 服务器错误,服务器在处理请求时,发生了内存错误。
HTTP常见字段
Host 指定服务器域名
Connection 字段 : 用于客户端要求服务器使用【HTTP长连接】机制。
- HTTP 长连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。
get 和 post 区别
RFC 规范定义
- get:从服务器获取指定的资源
- post:根据请求负荷对指定的资源做出处理
- get:可以对 GET 请求的数据做缓存
- POST:浏览器一般不会缓存 POST 请求,也不能把 POST 请求保存为书签
实际:
- 可以用 GET 方法实现新增或删除数据的请求,这样实现的 GET 方法自然就不是安全和幂等
- 理论上,任何请求都可以带 body 的
HTTP 缓存技术
强制缓存
只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存
协商缓存
通过服务端告知客户端是否可以使用缓存的方式被称为协商缓存
eg. 某些请求的响应码是 304,这个是告诉浏览器可以使用本地缓存的资源
HTTPS 443
解决了HTTP的 窃听风险、篡改风险、冒充风险
- 混合加密解决窃听风险
- 摘要算法 + 数字签名 保证传输的内容不被篡改
摘要算法 : 用哈希函数来计算出内容的哈希值哈希值是唯一的,且无法通过哈希值推导出内容 ,可以保证内容不被修改。
对摘要算法得到的哈希值进行非对称加密,保证「内容 + 哈希值」不被替换
- 数字证书进行身份验证
HTTPS建立连接
HTTPS协议对称加密的过程?
- 证书的认证阶段:使用非对称加解密算法对数据传送阶段的对称加解密密钥进行加密和解密
- 数据传送阶段:通过证书认证阶段获取到目标服务器的对称加解密密钥,对数据进行加密传送给服务器
资料来源:小林coding