Hi,
On Tue, 20 Nov 2007 09:31:01 -0500, "Kyle R. Burton" kyle.burton@gmail.com wrote:
I'm not sure if there is a mailing list that would be more appropriate.
Really?
http://weitz.de/hunchentoot/#mail
I'd appreciate if we could continue this discussion on the list, see Cc. (You have to subscribe first, of course.)
I'd like to start by saying thanks for Hunchentoot! (and all the other CL libraries you've developed).
You're welcome... :)
I am just starting with Hunchentoot, but I noticed that the query string parser supports ampersand (&) as a pair separator and I rememberd semi-colon (;) also being a valid separator for query strings. I only remember this from having worked with Perl's CGI. A bit of quick searching on the net lead me to:
http://en.wikipedia.org/wiki/Query_string http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2
to confirm that the semi-colon is mentioned as a separator.
I have to admit that this is the first time I've heard of this recommendation. A quick test with the vastly popular PHP shows that they don't implement it either:
<? print_r($_GET); ?>
Try these:
http://zappa.agharta.de/test.html?foo=bar&baz=quux http://zappa.agharta.de/test.html?foo=bar;baz=quux
So, to everyone on the list - what's your experience with semicolons as query string separators? Is this normal or esoteric? And, even more interesting, does any client out there actually use this convention?
I looked into the sources and I think the minor change is in defmethod initialize-instance :after, to just update the split from:
(form-url-encoded-list-to-alist (split "&" query-string))
to
(form-url-encoded-list-to-alist (split "[;&]" query-string))
A quick empirical test with a browser shows symptoms of working:
/lisp/test?foo=bar&qux=baz&blarf=qbozzle /lisp/test?foo=bar;qux=baz;blarf=qbozzle
I'm new to CL so I'm not entirely confident of my suggestion...
Seems OK, but it might break existing applications.
Also, is there a place in the source tree for any kind of unit tests or assertions? I'd have added one for this test, but I didn't recognize where it would have been appropriate to put it.
No, only the demo in the "test/" directory.
Is this something you'd consider enhancing Hunchentoot with?
Lots of stuff...
Cheers, Edi.