-
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 | ||
Doc | ||
Grammar | ||
Include | ||
Lib | ||
Mac | ||
Misc | ||
Modules | ||
Objects | ||
PC | ||
PCbuild | ||
Parser | ||
Python | ||
RISCOS | ||
Tools | ||
.cvsignore | ||
.hgtags | ||
LICENSE | ||
Makefile.pre.in | ||
README | ||
configure | ||
configure.in | ||
install-sh | ||
pyconfig.h.in | ||
setup.py |