- From: Noah Mendelsohn <nrm@arcanedomain.com>
- Date: Wed, 09 Mar 2011 11:44:53 -0500
- To: John Kemp <john@jkemp.net>
- CC: "www-tag@w3.org" <www-tag@w3.org>, Jeni Tennison <jeni@jenitennison.com>
On 3/9/2011 11:08 AM, John Kemp wrote:
> to me, "?" provides arguments that are interpreted relative to the server-side namespace
Where to the specs say that?  RFC 3986 says [1]:
"The query component contains non-hierarchical data that, along with data 
in the path component (Section 3.3), serves to identify a resource within 
the scope of the URI's scheme and naming authority (if any). The query 
component is indicated by the first question mark ("?") character and 
terminated by a number sign ("#") character or by the end of the URI. "
Nothing about servers there. The query is just part of the structured 
information in the URI, it's neutral with respect to server and client, and 
that's why I find it appealing. It's also why the AJAX code in Google maps 
can both generate and interpret query parms while remaining RFC 
3986-compliantcompliant.
So, query is in some sense "just part of the URI", and # is interpreted 
relative to the media type of a representation (actually, per 3986 "that 
might result from a retrieval action on the primary resource", so even that 
isn't client-only). I think the notion that ? is server-side is a 
misunderstanding resulting from the fact that, RFC 2616 mandates that HTTP 
Request-URIs must not include the fragment [2], so in that sense only # is 
client side. "?" is, appealingly, neutral.
In short:
* We can use # which is not sent to the server, unless HTTP changes.
* We can use ? results in excess traffic to the servers, unless the user 
agents change (as they are starting to)
I think ? is the more appealing long term direction, and should be 
seriously explored.
Noah
[1] http://www.apps.ietf.org/rfc/rfc3986.html#sec-3.4
[2] http://www.ietf.org/rfc/rfc2616.txt
Received on Wednesday, 9 March 2011 16:45:23 UTC