美文网首页
HTTP有哪些特点?

HTTP有哪些特点?

作者: Drew_MyINTYRE | 来源:发表于2022-01-26 11:33 被阅读0次
    • HTTP 是灵活可扩展的,可以任意添加头字段实现任意功能;

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

    • HTTP 是可靠传输协议,基于 TCP/IP 协议“尽量”保证数据的送达;

    • HTTP 是应用层协议,比 FTP、SSH 等更通用功能更多,能够传输任意数据;

    • HTTP 使用了请求 - 应答模式,客户端主动发起请求,服务器被动回复请求;

    • HTTP 本质上是无状态的,每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相关的信息。

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

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

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

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:HTTP有哪些特点?

          本文链接:https://www.haomeiwen.com/subject/mscnhrtx.html