当前位置: 首页 > news >正文

目前做定制产品的网站黄山冬季旅游攻略

目前做定制产品的网站,黄山冬季旅游攻略,网站分析报告怎么做,深圳网站优化课程哪里学长连接: 客户端发送Http请求至服务端,请求发送完之后socket连接不断开,可以继续接收下一个Http请求并且解析返回。接手并解析这些Http请求的时候socket连接不断开,这种过程被称为长连接。 需要注意的点就在于,在满足什么条件的情况…

长连接:

        客户端发送Http请求至服务端,请求发送完之后socket连接不断开,可以继续接收下一个Http请求并且解析返回。接手并解析这些Http请求的时候socket连接不断开,这种过程被称为长连接。

        需要注意的点就在于,在满足什么条件的情况下,Tomcat何时会保持长连接;何时又会将长连接断开。

       BIO伪代码如下

keepAlive = truewhile (keepAlive) {//如果连接池中的工作线程/最大线程数>=75,那么也关闭keepAlive和最后一行的decrementKeepAlive相对应if(disableKeepAlive()){socketWrapper.setKeepAliveLeft(0);}//如果是HTTP/1.1,那么依旧是true,如果是HTTP/1.0或者''那么将keepAlive设置成false,否则直接报错,Http协议有问题prepareRequestProtocol();//请求头中的Connection参数,如果是keep-alive,那么设置成true,如果是close,那么设置成falseprepareRequest();//当前socket连接能够处理的最大请求数,如果设置成1,那么也改成false,因为你设置成1,说明他只能处理一个请求,那么处理完就应该关闭if (maxKeepAliveRequests == 1) {keepAlive = false;} else if (maxKeepAliveRequests > 0 &&socketWrapper.decrementKeepAlive() <= 0) {//如果请求数有多个,但是超过了当前socket连接上设置的最大限制数,那么keepAlive也设置成falsekeepAlive = false;}}prepareRequestProtocol() {if (protocolMB.equals(Constants.HTTP_11)) {}else if (protocolMB.equals(Constants.HTTP_10)) {keepAlive = false;}else if (protocolMB.equals("")) {keepAlive = false;}}prepareRequest(){//close设置成falseif (tokens.contains(Constants.CLOSE)) {keepAlive = false;} //keep-alive设置成trueelse if (tokens.contains(Constants.KEEP_ALIVE_HEADER_VALUE_TOKEN)) {keepAlive = true;}    }disableKeepAlive(){//工作线程数和最大线程数的比对if((maxThreads= endpoint.getMaxThreadsWithExecutor()) > 0 && (threadsBusy = endpoint.getCurrentThreadsBusy())>0)){threadRatio=(threadsBusy*100)/maxThreads;//如果大于75%if(threadRatio>getDisableKeepAlivePercentage()){return true}}}

        解析伪代码可以看到Tomcat中通过keepAlive属性的开合来保持长连接的开启或者关闭,BIO代码中影响KeepAlive的因素有如下几方面:

                1.一个socket连接对应一个线程,Tomcat本身有一个工作的线程池,如果工作的线程和线程池中的最大线程数的比例>=设定的阈值(默认是0.75),那么就会就会将keepAlive设置成false

                2.会根据你的Http版本,1.0的设置成false

                3.Http请求中的请求头有Connection属性,如果传过来的是close,那么也会将keepAlive设置成false,如果传入的是keep-alive,那么将会设置成true

                4.当前socket连接中能够处理的最大请求数,如果将其设置成1,那么说明这个就是短连接,处理完当前Http请求之后就会关闭socket连接,将其设置成false

                值的注意的是,如果2中改成了false,但是3中的属性依旧是Connection:keep-alive,那么3会覆盖2的结果

                上述就是Tomcat中保持长连接以及会影响到长连接开关的因素

          

                

http://www.yayakq.cn/news/379327/

相关文章:

  • 网站建设的策划方案苏州网站建设最佳方案
  • 舟山市建设信息港网站公司企业邮箱如何注册
  • 网站可以做固定资产吗网站开发设计的技术
  • 寻找东莞微信网站建设北京seo主管
  • flash网站引导页面制作有什么做节能报告的网站
  • 多语言网站建设价格如何写软文
  • 我做的网站怎么提升排名wordpress 域名绑定 方块
  • 湛江网站排名提升东莞公司网络营销公司
  • 联享品牌网站建设导视设计分析
  • 怎样清除单位域名 网站或互联网网址深圳宝安做网站公司
  • wordpress锚点定位网站搜索引擎优化的步骤
  • 农业网站电子商务平台建设方案空白word个人简历模板下载
  • 中企动力网站推广长治网站建设推广
  • 南宁网站建设加王道下拉asp伪静态网站如何做筛选
  • 网站管理模板做网站价格差异很大
  • 高平市网站建设公司深圳网站的做网站公司
  • 淘宝客网站怎么推广网站开发总结 优帮云
  • 网站开发管理学什么无锡做网站公司多少钱
  • 朝阳专业网站建设西昌有没有可以做网站的公司
  • 建设企业银行官方网站中国建设之乡是哪里
  • 做网站标志有限颜色使用的吗中小企业网站建设与推广论文
  • 贵州建设项目门户网站深圳市宝安区邮编
  • 做公众号首图的网站南昌百度网站快速排名
  • 国内建设网站学校网站怎么做的好处
  • 互联网网站名字厦门做网站seo的
  • 建设网站赚钱么重庆网站建设网络推广
  • 山东天成建设工程有限公司网站为什么网站生成后不显示
  • 乌兰县wap网站建设公司网站无缝背景
  • 息县网站建设c2c模式的例子
  • 重庆网站建设招标定制开发电商网站建设