关于HTTP长连接
来源:互联网 发布:淘宝隐藏券怎么找 编辑:程序博客网 时间:2024/04/30 03:03
今天下午跟同事讨论起项目中客户端和服务端请求的问题,不经意讨论到http的连接问题了,发现大家对http长连接的一些点都不是太了解,于是在网上查了下资料,做个记录。
首先,什么是http长连接?
http长连接即持久连接是http1.1版本的一个特性,即一个http连接建立完成一个请求-回应后,可以不需要立刻关闭,可以重复使用,具体可以度娘下。
这个连接是否一定是请求-回应-请求-回应顺序进行的?
简单说就是一个回应服务器未返回前,客户端能否在这个连接上再发送一个请求?
这个也是讨论过程中比较不确定的,翻看了资料后,有解释是这样的:客户端发送多个请求而不用等待每个响应,但服务器必须按照接收请求的顺序发送响应。按这个说法,问题的答案应该是可以的。实际是怎样的呢?(程序猿就是这样,不亲自证明就是不相信)同事写了个模拟程序,连续发送两个请求,但结果很奇怪,只收到一个回应,这个跟服务端实现有关?有这个可能!
再看一个测试,无无意中发现一个测试浏览器并发速度的网页:http://stevesouders.com/hpws/parallel-downloads.php
我用chrome测试,按网页的说明,测试出chrome应该是4个并发连接的,再把console打开,看到network页,有10个图片的请求是同时发出的(这里就不贴出图片了),那么基本可以肯定http的长连接是可以发送多个请求而不用等待每个响应的。
新的一个问题来了,如果服务端做了负载均衡,那么一个长连接的多个请求不会跑到不同服务器?
原来协议对这个是有保证的,协议规定了proxy server,比如负载均衡服务,像apache、nginx这些proxy server,必须保证一个长连接只能去到一个服务器。有这个保证,那就不用担心了。
- 关于HTTP长连接
- 关于HTTP长连接
- http:关于长连接和分块传输
- 关于http长连接使用的分享
- Comet: HTTP长连接
- HTTP实现长连接
- jetty HTTP长连接
- Http 长连接
- HTTP长连接
- HTTP长连接
- HTTP实现长连接
- HTTP长连接
- HTTP长连接小议
- HTTP长连接
- HTTP长连接
- HTTP长连接
- Comet:HTTP长连接
- HTTP长连接
- BZOJ 1831 中位数图
- Windows内存管理(1)--分配内核内存 和 使用链表
- DOM
- spring整合jdbc
- FLTK学习-1-VC中安装
- 关于HTTP长连接
- Windows内存管理(2)--Lookaside结构 和 运行时函数
- spring整合struts2
- FLTK学习-2-新手入门参考
- Windows内存管理(2)--Lookaside结构 和 运行时函数
- ssh整合后web.xml的配置
- FLTK学习-3-使用FLUID编程(1)
- HLG 1082 翻译 (基础题)
- Windows内存管理(3)--检查内存可用性,结构化异常处理 和 ASSERT