HTTP有哪些特点?

2022-01-26  本文已影响0人  Drew_MyINTYRE

传输的实体数据可缓存可压缩、可分段获取数据、支持身份认证、支持国际化语言等。

无状态有的时候是优点有的时候是缺点,看应用场景,在需要扩展的时候无状态就是优点,在需要会话保持的时候就是缺点。但无状态可以很容易变成有状态,而反过来就很难,这就体现了 Http 的灵活性。

既然服务器没有“记忆能力”,它就无法支持需要连续多个步骤的“事务”操作。例如电商购物,首先要登录,然后添加购物车,再下单、结算、支付,这一系列操作都需要知道用户的身份才行,但“无状态”服务器是不知道这些请求是相互关联的,每次都得问一遍身份信息,不仅麻烦,而且还增加了不必要的数据传输量。

Cookie 技术呼之欲出,来实现“有状态”;

HTTP 协议里还有一把优缺点一体的“双刃剑”,就是明文传输。

“明文”意思就是协议里的报文(准确地说是 header 部分)不使用二进制数据,而是用简单可阅读的文本形式。

在“身份认证”和“完整性校验”这两方面 HTTP 也是欠缺的。

HTTP 协议也不支持“完整性校验”,数据在传输过程中容易被篡改而无法验证真伪。虽然银行可以用 MD5、SHA1 等算法给报文加上数字摘要,但还是因为“明文”这个致命缺点,黑客可以连同摘要一同修改,最终还是判断不出报文是否被篡改。为了解决 HTTP 不安全的缺点,所以就出现了 HTTPS,这个我们以后再说。

而“请求 - 应答”模式则加剧了 HTTP 的性能问题,这就是著名的“队头阻塞”(Head-of-line blocking),当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一并被阻塞,会导致客户端迟迟收不到数据。

不过现在已经有了终极解决方案:HTTP/2 和 HTTP/3

上一篇下一篇

猜你喜欢

热点阅读