URLs have been a hot topic for quite a while, and as a co-chair of the IETF's IRI Working Group, I witnessed some of the conversations around the specs. The Internationalized Resource Identifier specifications were intended to define how the RFC 3986 URIs could be made to include Unicode primarily, as well as other character encodings for legacy purposes.

1. A URL Live ViewerA page that dynamically displays URL components as parsed by the browser's DOM, and by the URL.js prototype implementation. The live view idea came from +Anne van Kesteren's live URL DOM viewer page which I lost the link to.

Run all tests from urls-local.json using testharness.js to compare the Web browser's DOM properties with the resultant HTTP request's path and hostname parts. The value of this test scenario is that we can compare the results of the HTTP GET against the browser's DOM properties to detect when URL components differ between the two.

This test is more complicated because it has the following server-side requirements:

mod_rewrite configured to proxy all requests for a pre-determined hostname pattern:

With the above RewriteCond, each test case must point to a URL that includes urltest.lookout.net in the hostname. The RewriteRule will send the request to /cgi-bin/httpreq.pl, a CGI Perl script which will return the HTTP GET request's Host header value, and GET path. These values are returned as javascript variables to be used in evaluating how the URL was parsed. For example, the following HTTP request:

GET /foo/bar HTTP/1.1Host: foo.urltest.lookout.net

would return:

varpathname="/foo/bar"varhostname="foo.urltest.lookout.net"

DNS wildcard record for the host For this to work, the DNS must be setup with a wildcard A record so that requests to *.lookout.net all resolve to the same IP address

If only there was some tool that could watch all of the network requests without regard to the client or server technology. Some sort of "proxy" maybe? Of course, it would need to be scriptable or extensible to enable injection of the desired logic. Ideally it would be based on a technology which you/Casaba has experience with? Hrm... I bet you get where I'm going with this. :-)

Hmmm what on Earth could you be talking about? :-P At one point I was using Fiddler for this! And it filled the need perfectly well in my personal lab, I even found some interesting bugs. Currently I want the testing to be a server-side solution - it could be done easily with an IIS HTTP module, but I'm running Apache and thinking mod_rewrite or an Apache module would be required.