Pse*_*ias 7 javascript tcp http tcp-ip node.js
这个问题涉及围绕tcp/ip协议的一般概念,对于它已经有了很好的答案,但是我希望能够深入了解node.js http/net库的特性.
节点http服务器实例允许为两种类型的事件注册回调,'request'事件和'connection',event.其中后者继承自网络库,以及字段"_connections",它计算服务器当前具有的并发连接数.
现在,在我看来,由于http是无状态协议,因此请求和连接事件之间应该存在1-1的对应关系 - 但事实并非如此.当我在调试器中单步执行一个简单的"hello-world"服务器时,我看到请求事件的数量超过了连接事件.我也看到了,即使没有对服务器进行调用(并且进程没有暂停),.connections字段也永远不会清零.为什么请求数量不等于连接数,为什么服务器在最终调用response.end()之后保持连接打开(当响应缓冲区应该被刷新并且连接结束?).
另外,http服务器的并发连接数(对keep-alive没有任何作用)怎么会高于1?请求基本上没有在socket上排队并逐个处理?我知道Node是异步的,但我也认为它的行为是单线程的.
提前致谢!
| 归档时间: |
|
| 查看次数: |
1999 次 |
| 最近记录: |