zoukankan      html  css  js  c++  java
  • HTTP 连接池

    HTTP 连接是无状态的,HTTP1.1 默认是长连接,HTTP1.0 也可以通过在请求头中设置 Connection:keep-alive 来开启长连接。

    为什么要用Http连接池?
    1、降低延迟
    如果不采用连接池,每次连接发起Http请求的时候都会重新建立TCP连接(经历3次握手),用完就会关闭连接(4次挥手),如果采用连接池则减少了这部分时间损耗
    2、支持更大的并发
    如果不采用连接池,每次连接都会打开一个端口,在大并发的情况下系统的端口资源很快就会被用完,导致无法建立新的连接

    httpclient-4.5.12.jar 提供了 PoolingHttpClientConnectionManager 来实现 HTTP 连接的池化管理,其管理连接的基本单位是 HttpRoute(路由),每个路由上都会维护一定数量的 HTTP 连接。这里的 Route 的概念可以理解为客户端机器到目标机器的一条线路,例如使用HttpClient的实现来分别请求 www.163.com 的资源和 www.sina.com 的资源就会产生两个route。
    缺省条件下对于每个Route,HttpClient仅维护2个连接,总数不超过20个连接,如果需要调整默认配置,可以使用 ConnPoolControl 方法进行调整连接限制。
    org.apache.http.impl.conn.PoolingHttpClientConnectionManager

    参考:
    https://www.cnblogs.com/kingszelda/p/8988505.html

  • 相关阅读:
    推送
    XPath
    XML
    在xcode 6.4 环境下写的demo 在xode7 环境下 网络请求有问题
    SVN 搭建
    翻译
    iOS面试题积累
    安卓扁平化之路专题(三)Android 5.0新特性
    Android @SuppressLint @TargetApi 总结
    Android_support_v4,Android_support_v7,Android_support_v13区别
  • 原文地址:https://www.cnblogs.com/kevin-yuan/p/13731552.html
Copyright © 2011-2022 走看看