博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
http链接和请求相关问题
阅读量:2456 次
发布时间:2019-05-10

本文共 1132 字,大约阅读时间需要 3 分钟。

  1. 一个tcp连接可以发送集合http请求

    答:在http1.1时 一个tcp连接建立后发送一个http请求连接就会断开 称为短连接 某些服务器对 Connection: keep-alive 的 Header 进行了支持。意思是说,完成这个 HTTP 请求之后,不要断开 HTTP 请求使用的 TCP 连接。这样的好处是连接可以被重新使用,之后发送 HTTP 请求的时候不需要重新建立 TCP 连接。 持久连接:既然维持 TCP 连接好处这么多,HTTP/1.1 就把 Connection 头写进标准,并且默认开启持久连接,除非请求中写明 Connection: close,那么浏览器和服务器之间是会维持一段时间的 TCP 连接,不会一个请求结束就断掉。

  2. http请求发送与响应的顺序

答:HTTP/1.1 存在一个问题,单个 TCP 连接在同一时刻只能处理一个请求,意思是说:两个请求的生命周期不能重叠,任意两个 HTTP 请求从开始到结束的时间在同一个 TCP 连接里不能重叠。虽然 HTTP/1.1 规范中规定了 Pipelining 来试图解决这个问题,但是这个功能在浏览器中默认是关闭的。先来看一下 Pipelining 是什么:一个支持持久连接的客户端可以在一个连接中发送多个请求(不需要等待任意请求的响应)。收到请求的服务器必须按照请求收到的顺序发送响应。但是,HTTP2 提供了 Multiplexing 多路传输特性,可以在一个 TCP 连接中同时完成多个 HTTP 请求,即多个http请求在tcp连接中并行执行。
  1. 浏览器对同一个host连接建立的数量有没有控制
答:Chrome 最多允许对同一个 Host 建立六个 TCP 连接。不同的浏览器有一些区别。
  1. 收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?
如果图片都是 HTTPS 连接并且在同一个域名下,那么浏览器在 SSL 握手之后会和服务器商量能不能用 HTTP2,如果能的话就使用 Multiplexing 功能在这个连接上进行多路传输。不过也未必会所有挂在这个域名的资源都会使用一个 TCP 连接去获取,但是可以确定的是 Multiplexing 很可能会被用到。如果发现用不了 HTTP2 呢?或者用不了 HTTPS(现实中的 HTTP2 都是在 HTTPS 上实现的,所以也就是只能使用 HTTP/1.1)。那浏览器就会在一个 HOST 上建立多个 TCP 连接,连接数量的最大限制取决于浏览器设置,这些连接会在空闲的时候被浏览器用来发送新的请求,如果所有的连接都正在发送请求呢?那其他的请求就只能等等了

转载地址:http://henhb.baihongyu.com/

你可能感兴趣的文章
机器学习入门python_使用Python进行机器学习入门
查看>>
kde调整分辨率_7个很酷的KDE调整将改变您的生活
查看>>
卫星重访周期_通过开放式冒险重访巨大的洞穴
查看>>
Raspberry Pi Zero W修复了网络遗漏
查看>>
公众号精选评论点赞_十大和编辑精选:三月评论
查看>>
python中flask_为什么以及如何在Python Flask中处理异常
查看>>
适合初学者的开源c需要项目_您的开源项目需要总裁吗?
查看>>
Python脚本可自动替换Scribus中的文本
查看>>
代码交互式图文_围绕交互式代码构建教室
查看>>
公众号精选评论点赞_十大和编辑精选:七月评论
查看>>
软齿面减速机抛开图_为了共同的目标而抛开自我
查看>>
维度诅咒_CEO自我的礼物和诅咒
查看>>
如何使用Jenkins运行JMeter
查看>>
angular 初探_初探Google的Science Journal应用
查看>>
关于开源软件研究的英文论文_关于开源公司软件的7个神话
查看>>
非传统营销 text_在传统营销失败的地方,社区推动的营销成功
查看>>
irc ubuntu_IRC入门
查看>>
Phire CMS:功能丰富的轻量级内容管理系统
查看>>
庆祝一下_加入我们,庆祝开放组织的一年
查看>>
dropbox为什么被屏蔽_Python社区和Dropbox为增加多样性而采取的步骤
查看>>