Http 协议基础知识 1:http 和 tcp

发布于 2021-11-05 21:35:38 字数 894 浏览 1182 评论 0

http 协议是 Web 前端开发的一块基石,对于大多数页面来说,它承载了全部的网络请求,其重要性不言而喻,但在平时的工作和面试中,发现很多从业者对其几乎不了解,在此为大家归纳总结出其中较为常见,与前端开发较为密切的 http 协议相关知识。一来免去大家翻看厚厚的协议书,二来也更有针对性。

首先,http 是在 tcp/ip 之上的一层网络数据传输协议,包括请求头和请求体,都是纯文本不加密传输的。

http 请求的大体顺序如下。

  1. 用户发起 http 请求,client 首先要根据 url 确认 server 端的 ip 地址和端口。如果本机没有该 server 的 ip 地址缓存,就要通过 dns 解析得到 ip 地址,并缓存起来,这个 dns 解析的过程可能比较耗时,要花费一段时间。因此页面要合理规划域名个数,多域名对然能提高并发量,但在 dns 解析上也会消耗较多时间。
  2. 找到目标 server 的 ip 地址之后,就会建立 tcp 链接。由于 tcp 链接的可靠性,导致每次创建tcp链接都是一次额外的消耗(tcp 在建立链接,发送数据前,会交换一系列的 ip 分组,也就是所谓的握手)。因此合理规划页面中请求的个数,尽量避免过多 tcp 请求的断开与重建,这里可以利用 http 协议的 keep-alive 特性。
  3. tcp链接建立成功后,开始 http 利用 tcp 开始发送数据。为了避免突然的过载和拥堵,tcp 限制了每次可以发送的数据。每次数据确认后,才可以发送两倍的数据。也就是第一次发送一组数据,确认后,发送两组数据,再确认后,发送四组数据,一次类推。这个特性导致,一个新建的 tcp 连接,传输效率上要低于一个已经建立的 tcp 链接。

最终根据具体情况,client 或 server 会关闭 tcp 链接,一个或一组 http 请求结束。

根据以上介绍,就要求前端工程师能够根据经验和实际情况判断,页面如何减少请求个数的同时利用并发。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
906 人气
更多

推荐作者

沧笙踏歌

文章 0 评论 0

山田美奈子

文章 0 评论 0

佚名

文章 0 评论 0

岁月无声

文章 0 评论 0

暗藏城府

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文