纯牛奶645
纯牛奶645
  • 发布:2018-01-05 13:44
  • 更新:2018-01-05 13:44
  • 阅读:2550

Http长连接和管线化 Servlet NIO

分类:Native.js

http长连接

HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;他的好处:  
  1,同一个客户端可以使用这个长连接处理其他求情,避免http重新链接和断开所消耗的时间。  
  2,服务器可以利用这个连接 主动推送 消息到客户端(这个才是我想要的)。  
  HTTP头部有了Keep-Alive这个值,代表客户端这次请求期望是长连接的。但是并不代表一定会使用长连接,服务器端都可以无视这个值,也就是不按标准来。这里需要后台服务器支持这个标准。  

管线化


也可以理解为流水线。在长连接的基础上,将客户端的其他请求都交给这一个连接去处理。这里服务器需要注意一件事情。那就是这个请求的先后顺序是不能颠倒的

Servlet NIO


这个是servlet3.0 以后的功能,目前已经到4.x了。   
非阻塞IO操作。   
阻塞IO的servlet 每处理一次请求需要一个线程。   
非阻塞IO操作可以在servlet的中利用ReadListener,WriteListener,可以实现非阻塞操作

来源:http://blog.csdn.net/pk_sir/article/details/76213480

0 关注 分享

要回复文章请先登录注册