[openstack-dev] [swift] Plan to add Python 3 support to Swift
Ian Cordasco
sigmavirus24 at gmail.com
Fri Feb 12 14:12:26 UTC 2016
On Fri, Feb 12, 2016 at 5:13 AM, Victor Stinner <vstinner at redhat.com> wrote:
> Change 237027: For the encoding of HTTP headers, it looks like Swift doesn't
> respect HTTP RFCs. The HTTP requires headers to be encoded to Latin1, but
> Swift (server or client, sorry I don't know) encode headers to UTF-8.
> Something should be do too, but it will require a deep analysis, prepare a
> transition period, etc. This problem is complex and cannot be fixed right
> now.
Just to interject here, RFC 2616 is the one you're talking about. That
encoding requirement was dropped when HTTP/1.1 was updated in the
7230-7235 RFCs. Now a field value is defined as
field-value = *( field-content / obs-fold )
field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
field-vchar = VCHAR / obs-text
obs-fold = CRLF 1*( SP / HTAB )
obs-text = %x80-FF
Where VCHAR is any visible US ASCII character. So while UTF-8 is still
a bad idea for the header value (and in fact, http.client on Python 3
will auto-encode headers to Latin 1) Latin 1 is no longer the
requirement.
For those interested, you can read up on headers in HTTP/1.1 here:
https://tools.ietf.org/html/rfc7230#section-3.2
Cheers,
Ian
More information about the OpenStack-dev
mailing list