http并发请求和IIS连接数的问题
|
admin
2014年1月29日 23:53
本文热度 6288
|
1、 服务器是如何处理并发http请求的
2、iis中,多个并发请求,是1个线程,还是多个线程处理?
3、IIS最大连接数,应该指的是并发连接数,为什么有人把同一页面中不同和http请求(如图片,js,css)归到iis连接数中了,虽然是同一页面,但不一定会造成并发吧,比如1个页面引用了10js文件,那也是按顺序请求的吧,不是并发请求吧?
该文章在 2014/1/29 23:53:23 编辑过
| |
全部评论9 |
|
admin
2014年1月29日 23:53
当一个网页被浏览,服务器就会和浏览者的浏览器建立链接,每个链接表示一个并发。
web服务器往往可以并行处理多个连接,每一个链接都在一个单独的线程中处理,链接就是完成一个http的Get或者POST指令以及返回结果。超过最大连接数的请求就只有排队,等待别的某一个链接完成了服务器才开始接受新连接。
网站配置一定量的并发连接数,是一种避免用尽资源的手段
100个IIS连接数就可以有100个浏览器窗口同时与服务器连接 该评论在 2014/1/29 23:53:38 编辑过
|
|
admin
2014年1月29日 23:54
引用 2 楼 wuyq11 的回复:
当一个网页被浏览,服务器就会和浏览者的浏览器建立链接,每个链接表示一个并发。
web服务器往往可以并行处理多个连接,每一个链接都在一个单独的线程中处理,链接就是完成一个http的Get或者POST指令以及返回结果。超过最大连接数的请求就只有排队,等待别的某一个链接完成了服务器才开始接受新连接。
网站配置一定量的并发连接数,是一种避免用尽资源的手段
100个IIS连接数就可以有100个浏览器……
悲剧了,为什么考虑的是同一个人的同一页面请求,同一个人同一页面请求会产生多个并发吗,即使该页面有很多图片或js,css,那也是逐一请求而不是并发请求啊,并发请求,不是指的不同人同时请求导致并发吗? 该评论在 2014/1/29 23:54:00 编辑过
|
|
admin
2014年1月29日 23:54
1个页面有10张图片,2个Js,请求该页面时,会产生13个并发请求,还是逐一发生13个请求(不是并发)
另外5个用户同时请求1个页面,会产生5个并发请求,还是放在请求队列中等待? 该评论在 2014/1/29 23:54:24 编辑过
|
|
admin
2014年1月29日 23:54
1个页面有10张图片,2个Js,请求该页面时,会产生13个并发请求,还是逐一发生13个请求(不是并发)
连接不等于请求,在客户端建立一个连接可以处理2-4个请求,跟浏览器有关
Internet Explorer 浏览器在同一时刻只能从同一域名下载两个文件。
另外5个用户同时请求1个页面,会产生5个并发请求,还是放在请求队列中等待?
建立了5个连接,在每个连接中可以有多个请求处理,关键还是看你的程序效率,早处理完早释放连接,其他用户再请求你的页面时就不会超过连接数限制
个人理解,经验有限,期待后面的高人多多指正 该评论在 2014/1/29 23:54:36 编辑过
|
|
admin
2014年1月29日 23:54
同一页面有如果有10个JS+图片,那就相当于10个并发连接.
这就是为什么大的网站,会把网站的各种小图标都放在同一张大图上,然后通过CSS来显示不同部分的原因,理由就是减少不必要的并发连接.
但是,如果在IIS中开启"保持HTTP连接"选项,上述负面影响将大大降低.
大多数 Web 浏览器要求在服务器向客户端发送多个元素(.htm 文件、.gif 或 .jpeg 文件)时保持客户端连接打开。以这种方式保持客户端连接称为保持 HTTP 连接.保持连接是一个 HTTP 规范,它能够增强服务器性能。默认情况下,启用“保持 HTTP 连接”。 该评论在 2014/1/29 23:54:47 编辑过
|
|
admin
2014年1月29日 23:55
另外,对于IE来说,IE6以前,同一个客户端同时只建议2个TCP连接与服务器进行通讯.更早前是4个连接
不过,到IE7及以后,默认值就变成10个了.
这个可以通过注册表来修改.
可能是考虑了当前服务器的硬件性能增加/宽带网络发展以及网页丰富元素的需求吧. 该评论在 2014/1/29 23:55:02 编辑过
|
|
admin
2014年1月29日 23:55
一个用户登录后算一个连接
规定时间内,每次发出页面请求都只算一个连接
超过时间没有发出页面请求则占用的连接数被清除 该评论在 2014/1/29 23:55:14 编辑过
|
|
admin
2014年1月29日 23:55
引用 8 楼 newdigitime 的回复:
另外,对于IE来说,IE6以前,同一个客户端同时只建议2个TCP连接与服务器进行通讯.更早前是4个连接
不过,到IE7及以后,默认值就变成10个了.
这个可以通过注册表来修改.
可能是考虑了当前服务器的硬件性能增加/宽带网络发展以及网页丰富元素的需求吧.
多个用户同一时间请求同一页面,算并发吗,我指的是同时,另外超过并发连接数后,怎么处理?在连接队列中? 该评论在 2014/1/29 23:55:27 编辑过
|
|
admin
2014年1月29日 23:55
引用 11 楼 aspnet30 的回复:
多个用户同一时间请求同一页面,算并发吗,我指的是同时,另外超过并发连接数后,怎么处理?在连接队列中?
当然是并发,超过连接数后,就要排队 该评论在 2014/1/29 23:55:37 编辑过
|