I've updated my server to conform to the
new spec with regards to accepting the
full URL in the request, and returning
the new status codes. It should now be
in full compliance (at least as far as I
can tell). I've been playing around with
a bunch of different URL formats and it
seems to not crash at least. I also
wrote a dumb 50-line client program to
facilitate my testing.
One thing that I noticed is that
python's URL parser expects URLs without
a scheme to be prefixed with a "//"
according to RFC 1808. I suppose this
makes sense, if I provide a url like
"localhost/", how would the parser know
the difference between these two
1. host = (not provided)
path = "localhost/"
2. host = "localhost"
path = "/"
It certainly threw me for a loop though.
My todo list is now to start playing
around with all of the fun stuff:
- client certificates and session
- accepting input from clients
- proxying requests for other protocols