• 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.

  • 相关阅读:
    vue项目实践-添加axios封装api请求
    travis-ci 中运行 puppeteer
    ubuntu 16.04 TLS 安装VNC
    duilib bkimage 属性
    Android后台服务拍照
    mongodb 设置用户密码权限
    App爬虫神器mitmproxy和mitmdump的使用
    insserv: Script <name> is broken: incomplete LSB comment.
    ubuntu ssh root登陆
    virtualbox 迁移虚拟机存储位置
  • 原文地址:https://www.cnblogs.com/lexus/p/2391233.html
Copyright © 2020-2023  润新知