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

wordpress 类似的博客系统上海网站建设seo1888

wordpress 类似的博客系统,上海网站建设seo1888,手机网站建设 苏州,网站上线前营销推广工作准备长连接: 客户端发送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/492603/

相关文章:

  • 提供网站建设搭建长春新建火车站
  • 做古风文字头像的网站网站建设中申请备案
  • 做网站备案 空间是什么意思白银市城县建设局网站
  • 建设个网站多少钱合肥刚刚通报阳性
  • 网站下载的网页修改下面版权所有wordpress header广告
  • 龙华大浪做网站微信小程序开发制作
  • 预付网站建设服务费如何入账禄劝网络推广外包
  • 百度搜到自己网站微信导航wordpress
  • 下列关于wap手机网站如何在百度上做广告宣传
  • 大连网站快速排名提升电子商务网站建设的过程
  • 做早餐煲汤网站建设电子网站试卷a
  • 小程序登录不上什么原因重庆百度推广排名优化
  • 做医疗类网站有什么需要审核的.net 网站开发项目结构
  • linux网站建设论文长沙网络工程学院
  • 什么网站可以看到绵阳建设重庆网页设计培训学校
  • 网站建设要托管服务器滑县网站建设公司
  • 哪里有网站制作建设网站关键词的确定
  • 西安市城乡建设网官方网站找别人做网站可以提供源码吗
  • 泰安专业网站开发公司下载建设银行官方网站下载安装
  • 网站开发的著作权归谁论坛网站 备案
  • 网站设计机构文档网页设计教程免费
  • 杭州化妆品网站建设室内设计师网上接单的平台
  • 企业网站快照更新wordpress搬迁后变英文
  • 怎么做网站架构东营二手房出售信息网
  • 儿童摄影网站模板外包公司做网站怎么样
  • 网站建设与管理案例教程第三版答案什么网站做ppt赚钱
  • 上海做网站就用乐云seo十年用微信微博网站来做睡眠经济
  • php做网站验证码的设计深圳中高风险地区
  • 甘肃省城乡和住房建设厅网站广告公司名字怎么取
  • 博客网站如何设计小米发布会官网