HTTP/1.1 特性(计算机网络)

这篇具有很好参考价值的文章主要介绍了HTTP/1.1 特性(计算机网络)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP/1.1 的优点有哪些?

「简单、灵活和易于扩展、应用广泛和跨平台」

1. 简单

HTTP 基本的报文格式就是 header + body,头部信息也是 key-value 简单文本的形式,易于理解

2. 灵活和易于扩展

HTTP 协议里的各类请求方法、URI/URL、状态码、头字段等每个组成要求都没有被固定死,都允许开发人员自定义和扩充

同时 HTTP 由于是工作在应用层( OSI 第七层),则它下层可以随意变化,比如:

  • HTTPS 就是在 HTTP 与 TCP 层之间增加了 SSL/TLS 安全传输层;
  • HTTP/1.1 和 HTTP/2.0 传输协议使用的是 TCP 协议,而到了 HTTP/3.0 传输协议改用了 UDP 协议。

3. 应用广泛和跨平台

HTTP/1.1 的缺点有哪些?

HTTP 协议里有优缺点一体的双刃剑,分别是「无状态、明文传输」,同时还有一大缺点「不安全」。

1. 无状态双刃剑

无状态的好处,因为服务器不会去记忆 HTTP 的状态,所以不需要额外的资源来记录状态信息,这能减轻服务器的负担。

无状态的坏处,没有记忆能力,那么在完成有关联性的操作时会非常麻烦。

例如登录->添加购物车->下单->结算->支付,这系列操作都要知道用户的身份才行。但服务器不知道这些请求是有关联的,每次都要问一遍身份信息。

通常使用 Cookie 技术来解决无状态问题。

Cookie 通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。

相当于,在客户端第一次请求后,服务器会下发一个装有客户信息的「小贴纸」,后续客户端请求服务器的时候,带上「小贴纸」,服务器就能认得了

2. 明文传输双刃剑

明文传输虽然易于阅读,但也增加了信息泄露的风险。

HTTP/1.1 的性能如何?

HTTP 协议是基于 TCP/IP,并且使用了「请求 - 应答」的通信模式,所以性能的关键就在这两点里。

1. 长连接

早期 HTTP/1.0 性能上的一个很大的问题,那就是每发起一个请求,都要新建一次 TCP 连接(三次握手),而且是串行请求,做了无谓的 TCP 连接建立和断开,增加了通信开销。

HTTP/1.1 提出了长连接的通信方式,也叫持久连接。这种方式减少了 TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。

持久连接的特点是,只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。http 1.1 协议格式,计算机网络,计算机网络

如果某个 HTTP 长连接超过一定时间没有任何数据交互,服务端就会主动断开这个连接。

2. 管道网络传输

HTTP/1.1 采用了长连接的方式,这使得管道(pipeline)网络传输成为了可能。

即可在同一个 TCP 连接里面,客户端可以发起多个请求,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

举例来说,客户端需要请求两个资源。以前的做法是,在同一个 TCP 连接里面,先发送 A 请求,然后等待服务器做出回应,收到后再发出 B 请求。那么,管道机制则是允许浏览器同时发出 A 请求和 B 请求,如下图:

http 1.1 协议格式,计算机网络,计算机网络

但是服务器必须按照接收请求的顺序发送对这些管道化请求的响应

如果服务端在处理 A 请求时耗时比较长,那么后续的请求的处理都会被阻塞住,这称为「队头堵塞」。

所以,HTTP/1.1 管道解决了请求的队头阻塞,但是没有解决响应的队头阻塞

注意:

实际上 HTTP/1.1 管道化技术不是默认开启,而且浏览器基本都没有支持,知道有这个功能,但是没有被使用就行了。

3. 队头阻塞

「请求 - 应答」的模式会造成 HTTP 的性能问题。

当顺序发送的请求序列中的一个请求因为某种原因被阻塞时,在后面排队的所有请求也一同被阻塞了,会招致客户端一直请求不到数据,这就是「队头阻塞」,好比上班的路上塞车。

http 1.1 协议格式,计算机网络,计算机网络

总之 HTTP/1.1 的性能一般,后续的 HTTP/2 和 HTTP/3 就是在优化 HTTP 的性能。

HTTP/1.1采用了长连接来提高性能,只要客户端和服务器端没有一方主动断开连接,就会在一定时间内保持连接,从而避免了多次连接和断开产生的开销,长连接使得管道网络传输成为可能,之前的情况是必须等第一个请求得到响应时才能发送第二个请求,如果使用管道网络传输,那么就可以在发送的第一个请求没有得到响应时就发送第二个请求,但是服务器必须按照接收请求的顺序发送对这些管道化请求的响应,如果服务端在处理某一个请求时耗时比较长,那么后续的请求的处理都会被阻塞住,这称为「队头堵塞」,就和堵车一样,会导致客户端一直请求不到数据。

所以,HTTP/1.1 管道解决了请求的队头阻塞,但是没有解决响应的队头阻塞,不过管道网络传输默认关闭,且大多数浏览器没有支持,知道就行。文章来源地址https://www.toymoban.com/news/detail-860986.html

到了这里,关于HTTP/1.1 特性(计算机网络)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络——HTTP协议

            HTTP(超文本传输协议),定义在RFC2616中,是用于分布式和协作式多媒体系统之间交互的应用层通信协议。         HTTP是一个无状态协议,意味着它不保存先前交互的记录。每个请求都独立于其他请求处理。         HTTP旨在促进客户端和服务器在分布式系

    2024年01月21日
    浏览(61)
  • 计算机网络(5) --- http协议

    计算机网络(4) --- 协议定制_哈里沃克的博客-CSDN博客 协议定制 https://blog.csdn.net/m0_63488627/article/details/132070683?spm=1001.2014.3001.5501 目录 1.http协议介绍 1.协议的延申 2.http协议介绍 3.URL 4.urlencode和urldecode 2.HTTP协议结构 1.引入 2.细节 3.HTTP协议的使用 1.协议 2.网页配置 3.HTTP请求方法

    2024年02月14日
    浏览(48)
  • 【计算机网络】应用层协议 -- HTTP协议

    协议。网络协议的简称,网络协议是通信计算机双方必须共同遵守的一组约定,比如怎么建立连接,怎么互相识别等。 为了使数据在网络上能够从源头到达目的,网络通信的参与方必须遵守相同的规则,我们称这套相同的规则为协议(protocol),而协议最终都需要通过计算机

    2024年02月15日
    浏览(52)
  • 计算机网络 - http协议 与 https协议(2)

    本篇介绍了构造http请求的的五种方式,简单的使用postman构造http请求,进一步了解https, 学习https的加密过程,了解对称密钥与非对称密钥对于加密是如何进行的,如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 1) 直接在浏览器中的地址栏中输入一个 u

    2024年02月13日
    浏览(64)
  • 【计算机网络】HTTP协议以及简单的HTTP服务器实现

    虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输议)就是其中之一。 平时我们俗称的 “网址” 其实就是说的 URL 像 / ? : 等这样的字符, 已经被url当做特殊意义理解了.

    2024年01月20日
    浏览(63)
  • 计算机网络 - 应用层http协议 - http报文格式介绍(1)

    本篇认识和理解应用层中的http协议,了解抓包工具并进行使用,认识请求报文与响应报文,了解报文中基本键值对意思例如:Set-Cookie, 状态码等,如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 ① 根据输入的url,在域名系统DNS中进行解析获取对应的服务

    2024年02月12日
    浏览(58)
  • 【计算机网络】应用层——HTTP 协议(一)

    个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】 本专栏旨在分享学习计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌 HTTP协议全称超文本传输协议,通过浏览器和服务器进行数据交互,进行

    2024年01月23日
    浏览(53)
  • Linux 计算机网络 深入理解HTTP协议

    HTTP是超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议。下面就来介绍HTTP的组成与特性。 HTTP是 ⽆连接 , ⽆状态 , ⼯作在应⽤层 的协议。 ⽆连接: http协议本身是没有维护连接信息的, http的数据会交给⽹络协议栈传输层的TCP协议, ⽽TCP是⾯向

    2024年02月14日
    浏览(45)
  • 计算机网络学习day02|HTTP协议

    目录 一、HTTP报文格式长什么样?是如何分割的? 请求行 状态行 头部字段 常用头字段 小结 二、HTTP提供了哪些方法?GET和POST的区别是什么? 1.HTTP有哪些方法 2.GET/HEAD 3.PSOT/PUT 小结 三、URI和URL URI 的格式 URI 的基本组成 URI 的查询参数 小结 四、HTTP有哪些状态码?分别代表什

    2024年04月23日
    浏览(48)
  • 计算机网络的故事——简单的HTTP协议

    ` HTTP是不保存状态的协议,为了实现保存状态功能于是引入了Cookie技术。 method: get:获取资源 post:传输实体主体 put:传输文件 head:获取报文首部,用于确认URI的有效性以及资源的更新日期时间等 delete:删除文件 put和delete不带验证机制,所以一般也不会使用delete方法,options:询问

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包