Thursday, 25 June 2009
The Resource Expert Droid
A (very) long time ago, I wrote the Cacheability Engine to help people figure out how a Web cache would treat their sites. It has a few bugs, but is generally useful for that purpose.
However, as I’ve got more involved in using HTTP for non-browser things, it’s become apparent that more than caching is important when you’re examining a resource to see how it behaves; things like partial content, syntax checking and other esoteric but important details. Very often, I’d find myself manually debugging a RESTful Web service with telnet — and as they say, that doesn’t scale.
Looking back at that decade-old code, I decided that rather than fixing it up (“lipstick” and “pig” are two words that come to mind), I’d rewrite. The result, after quite a few evenings and weekends, is the Resource Expert Droid.
In a nutshell, RED is a framework for testing HTTP resources; it fetches responses, analyses them, and then based upon the responses it may interact with the resource more to see how it behaves. In this manner, it’s very purposefully encouraging RESTfulness.
Note that I say “resources”, not “servers.” Since a single server can serve you content in a number of different ways (think plain files vs. CGI vs. mod_autoindex), you need to test on a per-resource granularity when you have problems. Of course, this observation isn't new.
A few examples for fun (please take it easy on these!):
Make sure you hover over the messages in the list for a full explanation of each.