classification
Title: Remove HTTP 0.9 server support
Type: behavior Stage: patch review
Components: Library (Lib) Versions: Python 3.2
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: eric.araujo, exarkun, giampaolo.rodola, gregory.p.smith, jhylton, loewis, orsenthil, pitrou, stutzbach
Priority: normal Keywords: patch

Created on 2010-12-16 18:21 by pitrou, last changed 2010-12-17 05:05 by orsenthil.

Files
File name Uploaded Description Edit
http09server.patch pitrou, 2010-12-16 18:21 review
Messages (4)
msg124145 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-12-16 18:21
http.server has support for old-style HTTP 0.9 requests ("command path" without a version string). This issue proposes to remove this support, since there are probably no clients around which still issue such requests.

See issue10711 for the client side.
msg124149 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2010-12-16 18:49
LGTM
msg124166 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2010-12-17 00:15
The question really is whether we want or want not to support RFC 1945 (i.e HTTP/1.0). If we want to support it, we also must comply to section 3.1, which says

 The version of an HTTP message is indicated by an HTTP-Version field
 in the first line of the message. If the protocol version is not
 specified, the recipient must assume that the message is in the
 simple HTTP/0.9 format.

If we then choose to not support HTTP/0.9 (after recognizing that the message is HTTP/0.9), we must then reject the request. According to RFC 2145, we then may send back error 505 (HTTP version not supported).
msg124184 - (view) Author: Senthil Kumaran (orsenthil) * (Python committer) Date: 2010-12-17 05:05
If a client sends a request without specifying the version, GET /, then the Python server should behave like other common servers are behaving, namely support rfc 1945 for HTTP 1.0 spec and return the response without headers.

Removing the HTTP 0.9 from the http.client is okay. But punishing *any client* for not sending the correct request is not so desirable, especially when there are other servers which are lenient to his behavior for whatever reasons.

So, I am not a firm +1 to this. We should arrive a conclusion and then go about with the change. Martin's point is valid here too.
History
Date User Action Args
2010-12-17 05:05:53orsenthilsetnosy: loewis, jhylton, gregory.p.smith, exarkun, orsenthil, pitrou, giampaolo.rodola, stutzbach, eric.araujo
messages: + msg124184
2010-12-17 00:15:32loewissetnosy: + loewis
messages: + msg124166
2010-12-16 18:49:26eric.araujosetnosy: + eric.araujo
messages: + msg124149
2010-12-16 18:21:42pitroucreate