[Web-SIG] Request for Comments on upcoming WSGI Changes

And Clover and-py at doxdesk.com
Tue Sep 22 17:03:08 CEST 2009


Ian Bicking wrote:

> OK, another proposal entirely: we kill SCRIPT_NAME and PATH_INFO, and
> introduce two equivalent variables that hold the NOT url-decoded values.

Yes, that was my preferred option, it makes all the worries about 
encodings quite moot: everything is effectively ASCII; they'll work fine 
both as byte native strings in Python 2 and unicode native strings in 
Python 3.

Although I would prefer not to *kill* SCRIPT_NAME/PATH_INFO, but to add 
to them, when the raw name and info are available. A server or 
middleware should *not* attempt to recreate these values from the 
processed SCRIPT_NAME/PATH_INFO values(*).

So when you see (eg.) 'wsgi.script_name_raw' and 'wsgi.path_info_raw' in 
your environ, you can be 100% sure they're correct and you can go ahead 
and use IRIs (and %2F if you must). If you don't see them, you have to 
continue to rely on the SCRIPT_NAME/PATH_INFO, so either fall back to 
ASCII-only URLs or take your chances with the charset lottery that is 
the current status quo.

If, like most applications, you don't care about non-ASCII URLs, you can 
ignore the whole issue and continue using SCRIPT_NAME/PATH_INFO.

(*: although arguably a middleware that recreates them from Apache's 
REQUEST_URI is partially possible.)

> i.e., ideally decoding should happen on path segments, each segment
> separated by a real /.

That is correct. Apache still disables paths with '%2F' in as a security 
precaution, but that's easily turned off.

> If we do that, then the only really tricky thing left is HTTP_COOKIE

I don't think that's particularly tricky is it? In as much as non-ASCII 
characters in the Cookie header are already completely broken 
everywhere, so everyone has to use ad-hoc encoding methods.

As Cookie is an actual HTTP header the encoding should presumably be 
ISO-8859-1, but I don't think it actually works anywhere.

-- 
And Clover
mailto:and at doxdesk.com
http://www.doxdesk.com/


-- 
And Clover
mailto:and at doxdesk.com
http://www.doxdesk.com/



More information about the Web-SIG mailing list