• Greg Stein's avatar
    Deal with a couple XXX comments which asked questions. · 616a58d7
    Greg Stein yazdı
    In response to "shouldn't the client close the file?", the answer is
    "no". The original design behind HTTPConnection is that the client did
    not have to worry about it. The response would close itself when you
    read the last of the data from it. This closing also dealt with
    allowing the connection to perform another request/response (if it was
    a persistent connection).
    
    However... the auto-close behavior broke compatibility with the
    classic httplib.HTTP class' behavior when a zero-length response body
    was present. In that situation, the HTTPResponse object was
    auto-closing it since there was no data present, and for an HTTP/1.0
    connection-close socket (or an HTTP/0.9 request) connection, that also
    ended up closing the socket. When an httplib.HTTP user went to read
    the socket... boom. A patch to correct the auto-close (for compat with
    old httplib users) was added in rev 1.22.
    
    But for non-zero-length *chunked* bodies, we should keep the
    auto-close behavior. The library user is not reading the socket (they
    can't cuz of the chunked response we just got done handling), so they
    should be immune to the response closing the socket. In fact, I would
    like to see (one day) the auto-close restored, and the HTTP subclass
    would simply have a flag to disable that behavior (for back-compat
    purposes).
    616a58d7
Adı
Son kayıt (commit)
Son güncelleme
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
RISCOS Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
LICENSE Loading commit data...
Makefile.pre.in Loading commit data...
README Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...
pyconfig.h.in Loading commit data...
setup.py Loading commit data...