- From: Noah Mendelsohn <nrm@arcanedomain.com>
- Date: Thu, 16 Dec 2010 10:58:55 -0500
- To: ashok.malhotra@oracle.com
- CC: "www-tag@w3.org" <www-tag@w3.org>
Thank you, Ashok. Here are my comments on the draft [1]. Main comments ============= ***Are query strings server-side? Are Fragids client-side?*** The draft has at least one fundamental conceptual flaw, in my opinion, which is the unsupported contention that query strings in a URI are a server-side construct. I don't see anything in RFC 3986 [1] to support that, and indeed I think that what's crucially interesting about the Google maps case is that both server- and client-side logic are aware of and act on the association of URIs with query strings to resources. The pertinent text from RFC 3986 is: "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." I don't see any mention of servers there; the can and are constructed, parsed and interpreted by clients as well, and all of that is crucial to our story. Indeed, fragment identifiers are only client-side in a limited sense: in the case where an HTTP interaction is performed, the fragment identifier is indeed not included in the Request-URI. That said, it's also likely true that servers are in many cases aware of the association between fragment identifiers and the resolution of those identifiers with respect to served representations. Indeed, this is why servers can often supply to the client Javascript logic that acts on just such associations. I think it is important to be much more careful, especially with respect to the implication that query strings are server-side. What's interesting is that they can be either or both. That being the case, you should more carefully explore the pros and cons of the choices made in Google Maps (client and server aware of ?) vs. GMail (you assert, and I assume it's true that GMail uses #-only, and thus implicitly has no way to identify an individual email to the server). ***Incorrect rationale for why Google maps uses ? In section 2.2 you say: "The URI that Google Maps creates for the displayed map has a long server-side parameter but no fragment identifier. This is because the maps are images and must be fetched from the server. If the maps were drawn using vector graphics, some of the scrolling and zooming could have been done on the client." I'm not convinced that reasoning is correct. If you look at the logic in Google maps, it's more subtle than that. The URI to which you refer may be sent to the server, but the response is typically not either map images or vectors; it's Javascript logic. That Javascript logic in turn has knowledge of the map, the zoom level, etc. (as far as I know), and uses that logic to do multiple individual GETs for tiles of the map image. Those tiles are then assembled by the client to make what the user believes is the representation of the original URI. I believe that this same logic could equally be applied to vectors, and indeed I believe >it is< for things like the blue lines representing driving directions, which seem pretty clearly to be rendered by the client, over the assembled map image tiles. Google maps is, for all these reasons, a terrific example, but I think you need to look more carefully at what it does, what that implies about query strings in URIs, and what Good Practice would be. ***Section 2.1.1 implies that if it's happening, it's good Section 2.1.1 correctly points out that in many cases (e.g. CNN video), the clients are interpreting fragids is a manner that is not what one would expect from the declared Content-type of text/html. So, these applications seem to be in violation of the applicable specification, yet the tone of the current draft is: "yes, well, so?". I think that if the TAG issues a Finding or Recommendation in this space, we need to come out strongly in favor of a Web in which specifications matter: if the applications are broken, fix them (at least usually); if the specifications are no longer meeting the needs of the Web, fix them. Either way, we should decide on a path forward. Less significant comments ========================= *** The status of document says this is a 30 Nov. "Working Draft". I don't think the group has agreed to publish this as a formal WD, and in any case we did not do so on 30 Nov. Please update the status to be correct. I personally would prefer to see this cleaned up somewhat, and then perhaps formally published. *** Partly because I think ? is as important to client-side identification as #, I would prefer to change the title. *** I didn't really understand the explanation in section 2.5. I suggest making that clearer. I have a number of editorial comments as well, and I'll try and get them typed in at some point too. Thank you. Noah [1] http://www.w3.org/2001/tag/2010/11/HashInURI [1] http://www.ietf.org/rfc/rfc3986.txt On 11/28/2010 3:02 PM, ashok malhotra wrote: > I just checked in http://www.w3.org/2001/tag/2010/11/HashInURI > This is a combination of Raman's hash-in-url writeup and my earlier writeup on > Client-side Storage. Please review and comment.
Received on Thursday, 16 December 2010 15:59:25 UTC