连接管理
程序员文章站
2024-03-15 13:44:23
...
讲了http的下层协议tcp/ip的一些知识点:tcp/ip建立连接需要做的事情,tcp/ip所带来的时延,以及从http的角度出发,提升网络性能的一些方法,涉及到串行连接、并行连接、持久连接、管道连接等概以及介绍了如何关闭连接等概念
-
通常http事务发生时会经过几个步骤,下面以访问http://www.xxx.com:80/ggg/index.html为例说明:
-
浏览器从地址栏中解析处域名(主机名),也就是拿到www.xxx.com
-
浏览器根据得到的主机名查询出ip地址,比如算出ip为202.43.78.3,(中间可能经过查找host文件或去查询dns服务器)
-
浏览器解析出端口(http默认为80,https默认为443)
-
浏览器发起一条到202.43.78.3端口为80的链接,(重建需要经过几次确定相关参数的来回“握手”)
-
浏览器发起请求报文
-
服务器返回响应报文
-
浏览器关闭连接(其实浏览器和服务器都可以在不通知对方的情况关闭连接)
浏览同时发起过个http事务,因为是并行的,所以时延也并行的,这样总时延较小,页面呈现更快,体验较好。但也不是总是这样,因为如果在网络速度很慢的时候,多个连接会去竞争本来不多的带宽,那么就谈不上加快速度了。还有就是并行连接也是需要付出代价的,比如增加系统内训消耗、服务器负载,比如有一个100客户端同时对服务发起100tcp并行连接的话,那么服务器就得负责10000个处理请求,很快的你的服务器就会爆掉。当然了,并行连接确实能带来视觉上的速度提升,因为相比于串行连接慢慢地显示数据而并行一下子能全部显示完信息,视觉上并行连接会给人速度更快的感觉!
持久链接
持久连接描述的是:如果对同ip、同端口的发起多个http事务连接,那么可以在前一个事务处理完成之后不要关闭tcp连接,以此来减小建立tcp、tcp慢启动所带来的时延
管道化连接
HTTP/1.1允许在持久连接上可选地使用请求管道。这是在keep-alive连接上的进一步性能优化。在响应到达之前,可以将多条请求放入队列。当第一条请求通过网络流向地球另一端的服务器时,第二条和第三条请求也可以开始发送了。在高时延网络条件下,这样做可以降低网络的环回时间,提高性能。
推荐阅读
-
连接管理
-
hive的不等值关联 博客分类: hive hive非等值连接join
-
Rails--解决active_scaffold和jrails冲突 RailsjQueryprototype项目管理Ajax
-
Rails--解决active_scaffold和jrails冲突 RailsjQueryprototype项目管理Ajax
-
Rails--解决active_scaffold和theme_support冲突 Rails项目管理
-
Rails--解决active_scaffold和theme_support冲突 Rails项目管理
-
【赵强老师】Oracle的PGA与数据库连接建立的过程 博客分类: Oracle oraclesql数据库nosqlmysql
-
JS复制附加代码(版权,原文连接等)
-
SCRUM版本总结模板 excel敏捷开发项目管理scrum
-
Apache Geode 管理系统输出文件 博客分类: 框架Apache Geode