zoukankan      html  css  js  c++  java
  • Pipelining

    Advanced HTTPClient Info

    Pipelining

    If the connection is kept open across requests then the requests may
    be pipelined. Pipelining here means that a new request is sent before
    the response to a previous request is received. Since this can
    obviously enhance performance by reducing the overall round-trip time
    for a series of requests to the same server, the HTTPClient has been
    written to support pipelining (at the expense of some extra code to
    keep track of the outstanding requests).

    The programming model is always the same: for every request you send
    you get a response back which contains the headers and data of the
    servers response. Now, to support pipelining, the fields in the
    response aren't necessarily filled in yet when the HTTPResponse object
    is returned to the caller (i.e. the actual response headers and data
    haven't been read off the net), but the first call to any method in the
    response (e.g. a getStatusCode()) will wait till the
    response has actually been read and parsed. Also any previous requests
    will be forced to read their responses if they have not already done so
    (so e.g. if you send two consecutive requests and receive responses
    r1 and r2, calling
    r2.getHeader("Content-type") will first force the complete
    response r1 to be read before reading the response
    r2). All this should be completely transparent, except for
    the fact that invoking a method on one response may sometimes take a
    few seconds to complete, while the same method on a different response
    will return immediately with the desired info.

  • 相关阅读:
    多线程 wait和sleep区别
    什么是分布式系统,如何学习分布式系统
    Mybatis传多个参数(三种解决方案)
    UML中类之间的几种关系
    前缀、中缀、后缀表达式
    数据库连接池c3p0和dbcp
    代码收藏
    spark教程(12)-生态与原理
    spark教程(10)-sparkSQL
    spark教程(九)-操作数据库
  • 原文地址:https://www.cnblogs.com/lexus/p/2391233.html
Copyright © 2011-2022 走看看