Non standard 100-continue behaviour
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
David Hadas |
Bug Description
RFC 2616 indicates:
The purpose of the 100 (Continue) status (see section 10.1.1) is to allow a client that is sending a request message with a request body to determine if the origin server is willing to accept the request (based on the request headers) before the client sends the request body. In some cases, it might either be inappropriate or highly inefficient for the client to send the body if the server will reject the message without looking at the body.
...
- A client MUST NOT send an Expect request-header field (section 14.20) with the "100-continue" expectation if it does not intend
to send a request body.
Swift proxy server, when communicating with the back-end servers ALWAYS sends 100-continue. Even if the length headers indicate that there is no body (content-length: 0). This behavior is not inline with the standard.
As a minimum, swift must avoid sending 100-continue for PUT requests without a body (content-length is zero).
It is highly desired that the swift would also avoid sending 100-continue for any objects below some threshold (e.g. 64K)
Alternatively, this threshold may be configurable.
Changed in swift: | |
assignee: | nobody → David Hadas (david-hadas) |
Changed in swift: | |
status: | New → In Progress |
Changed in swift: | |
milestone: | none → 1.7.5 |
status: | Fix Committed → Fix Released |
Fix proposed to branch: master /review. openstack. org/14663
Review: https:/