HTTP
定义
HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据
的「约定和规范」。
- 「超文本」,它就是超越了普通文本的文本,它是文字、图片、视频等的混合体
- HTTP允许开发人员进行自定义和扩展(比如在header头中增加token属性);
- HTTP【无状态、明文传输】,且【不安全】;
- HTTP是基于TCP/IP协议的;
缺点
HTTP 协议里有优缺点一体的双刃剑,分别是「无状态、明文传输」,同时还有一大缺点「不安全」。
1.无状态双刃剑
无状态的好处,因为服务器不会去记忆 HTTP 的状态,所以不需要额外的资源来记录状态信息,这能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。
无状态的坏处,既然服务器没有记忆能力,它在完成有关联性的操作时会非常麻烦。
例如登录->添加购物车->下单->结算->支付,这系列操作都要知道用户的身份才行。但服务器不知道这些请求是有关联的,每次都要问一遍身份信息。
解决:可以添加cookie标识身份,也可以添加token
2. 明文传输双刃剑
明文意味着在传输过程中的信息,是可方便阅读的,通过浏览器的 F12 控制台或 Wireshark 抓包都可以直接肉眼查看,为我们调试工作带了极大的便利性。
但是这正是这样,HTTP 的所有信息都暴露在了光天化日下,信息的内容都毫无隐私可言,很容易就能被窃取,如果里面有你的账号密码信息很容易被窃取到。
3. 不安全
HTTP 比较严重的缺点就是不安全:
如何解决HTTP不安全
HTTP 的安全问题,可以用 HTTPS 的方式解决,也就是通过引入 SSL/TLS 层,使得在安全上达到了极致。