<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7233.28">
<TITLE>[Web-SIG] Who is responsible for SCRIPT_NAME?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Ian Bicking said:<BR>
&gt; The HTTP server should always set SCRIPT_NAME to ''.<BR>
<BR>
Christian asked:<BR>
&gt; If it is a full blown WSGI compliant HTTP server,<BR>
&gt; why should it do that? Shouldn't it support mounting<BR>
&gt; applications at various points (SCRIPT_NAME locations)?<BR>
<BR>
and Ian replied:<BR>
&gt; It doesn't really need to do that, it's easy to do<BR>
&gt; that in the WSGI application itself.&nbsp; For instance:<BR>
&gt;<BR>
&gt; def dispatch(app_map):<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; ...<BR>
&gt;<BR>
&gt; I can understand this is a common desire and it<BR>
&gt; is not obvious that you can do this, so it might<BR>
&gt; be useful to include some middleware like this.<BR>
&gt; But the server itself does not need to do this.<BR>
&gt; And there's lots of ways you might want to do<BR>
&gt; this (e.g., virtual hosts, which do the same<BR>
&gt; basic thing but match against environ['HTTP_HOST']).<BR>
&gt; Paste includes code along these lines in paste.urlmap<BR>
<BR>
Aargh. This is getting really confusing for me as the author of WSGI gateways (wrappers around non-WSGI HTTP servers, like mod_python + Apache), one of the maintainers of a pure WSGI HTTP server (in CherryPy) and the primary developer of a WSGI interface for a popular app framework (CherryPy). On the one hand, I'm being told that WSGI apps need to &quot;obey&quot; SCRIPT_NAME no matter where it comes from, and on the other, I'm being told that SCRIPT_NAME is essentially ignorable. I'm getting tired of the run-around.<BR>
<BR>
Dear Web-SIG, please weigh in. Who is responsible for SCRIPT_NAME (setting and/or interpreting it) and what does it &quot;mean&quot;? I've been told that PEP 333 requires that the origin server (like my modpython_gateway, for example) must be told the &quot;mount point&quot; of every WSGI app it serves and set SCRIPT_NAME to that, always, so the app can trust it. Now (by the same person, as far as I can tell) I'm being told that the origin server should always set SCRIPT_NAME to &quot;&quot;, which IMO denies the reason for its inclusion in the spec. Regardless of the answer, that answer needs to be more clear in the spec--even if the answer is &quot;it depends&quot; or &quot;do what you want&quot;. So please, let's decide so I can make compliant all the code for which I'm responsible. I'm so very tired of interpretation games. Ian and I keep talking past each other, so I, at least, need others to chime in and explain things.<BR>
<BR>
<BR>
Robert Brewer<BR>
System Architect<BR>
Amor Ministries<BR>
fumanchu@amor.org</FONT>
</P>

</BODY>
</HTML>