Re: WSGI 2.0 Round 2: requirements and call for interest
Graham Dumpleton <[email protected]> Wed, 6 Jan 2016 09:37:34 +1100
| Newsgroups | gmane.comp.python.web |
|---|---|
| Message-ID | <[email protected]> |
--===============7978236952220600336== Content-Type: multipart/alternative; boundary="Apple-Mail=_993ADEA4-DB64-4A08-820B-8BB7E6787D6A" --Apple-Mail=_993ADEA4-DB64-4A08-820B-8BB7E6787D6A Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On 6 Jan 2016, at 9:19 AM, Graham Dumpleton = <[email protected]> wrote: >=20 >> On 6 Jan 2016, at 12:09 AM, [email protected] = <mailto:[email protected]> wrote: >>=20 >> As someone who writes their WSGI applications as functions that take >> `start_response` and `environ` and doesn't bother with much >> framework the things I would like to see in a minor revision to WSGI >> are: >>=20 >> * A consistent way to access the raw un-decoded request URI. This is >> so I can reconstruct a realistic `PATH_INFO` that has not been >> subjected to destructive handling by the server (e.g. apache >> messing with `%2F`) before continuing on to a route dispatcher. >=20 > This is already available in some servers by way of the REQUEST_URI = value. >=20 > This is the original first line of any HTTP request and can be split = apart to get the path. Whoops. My foggy memory. REQUEST_URI is only raw path part, not the = whole request line with method, protocol and path. Graham= --Apple-Mail=_993ADEA4-DB64-4A08-820B-8BB7E6787D6A Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" = class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div = class=3D"">On 6 Jan 2016, at 9:19 AM, Graham Dumpleton <<a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a>> wrote:</div><br = class=3D"Apple-interchange-newline"><div class=3D""><div class=3D"" = style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space;"><div class=3D""><blockquote = type=3D"cite" class=3D"" style=3D"font-family: Helvetica; font-size: = 16px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; orphans: auto; text-align: start; text-indent: = 0px; text-transform: none; white-space: normal; widows: auto; = word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class=3D"">On 6 = Jan 2016, at 12:09 AM,<span = class=3D"Apple-converted-space"> </span><a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a><span = class=3D"Apple-converted-space"> </span>wrote:</div><br = class=3D"Apple-interchange-newline"><div class=3D""><span class=3D"" = style=3D"font-family: Helvetica; font-size: 16px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">As someone who writes their WSGI applications as functions = that take</span><br class=3D"" style=3D"font-family: Helvetica; = font-size: 16px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class=3D""= style=3D"font-family: Helvetica; font-size: 16px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">`start_response` and `environ` and doesn't bother with = much</span><br class=3D"" style=3D"font-family: Helvetica; font-size: = 16px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; orphans: auto; text-align: start; text-indent: = 0px; text-transform: none; white-space: normal; widows: auto; = word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class=3D"" = style=3D"font-family: Helvetica; font-size: 16px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">framework the things I would like to see in a minor = revision to WSGI</span><br class=3D"" style=3D"font-family: Helvetica; = font-size: 16px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class=3D""= style=3D"font-family: Helvetica; font-size: 16px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">are:</span><br class=3D"" style=3D"font-family: Helvetica; = font-size: 16px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=3D"" = style=3D"font-family: Helvetica; font-size: 16px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><span class=3D"" style=3D"font-family: = Helvetica; font-size: 16px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;">* A consistent way to access the raw = un-decoded request URI. This is</span><br class=3D"" style=3D"font-family:= Helvetica; font-size: 16px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span = class=3D"" style=3D"font-family: Helvetica; font-size: 16px; font-style: = normal; font-variant: normal; font-weight: normal; letter-spacing: = normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; float: none; display: inline = !important;"> so I can reconstruct a realistic `PATH_INFO` that has = not been</span><br class=3D"" style=3D"font-family: Helvetica; = font-size: 16px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; orphans: auto; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; widows: = auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class=3D""= style=3D"font-family: Helvetica; font-size: 16px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; float: none; display: inline = !important;"> subjected to destructive handling by the server (e.g. = apache</span><br class=3D"" style=3D"font-family: Helvetica; font-size: = 16px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; orphans: auto; text-align: start; text-indent: = 0px; text-transform: none; white-space: normal; widows: auto; = word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class=3D"" = style=3D"font-family: Helvetica; font-size: 16px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; float: none; display: inline = !important;"> messing with `%2F`) before continuing on to a route = dispatcher.</span></div></blockquote></div><br class=3D""><div = class=3D"">This is already available in some servers by way of the = REQUEST_URI value.</div><div class=3D""><br class=3D""></div><div = class=3D"">This is the original first line of any HTTP request and can = be split apart to get the path.</div></div></div></blockquote><br = class=3D""></div><div>Whoops. My foggy memory. REQUEST_URI is only raw = path part, not the whole request line with method, protocol and = path.</div><div><br class=3D""></div><div>Graham</div></body></html>= --Apple-Mail=_993ADEA4-DB64-4A08-820B-8BB7E6787D6A-- --===============7978236952220600336== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Web-SIG mailing list [email protected] Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: https://mail.python.org/mailman/options/web-sig/gcpw-web-sig%40m.gmane.org --===============7978236952220600336==--