I recently created a Node.js utility that will cycle through a list of URLs and check their HTTP statuses:
This utility came out of a need to keep daily tabs on a number of URLs and the statuses that they were returning.
I plan on expanding it with other input and output adapters. Obvious input adapters would be databases. What else can you think of? Obvious output adapters would be email and any other type of messaging system.
Pull requests are welcome.
Added an excludedHeaders option. This is a list of headers that you want the check to fail on if they are present in the response from the server.
At first blush this may seem like a strange check to make. The common use case is the X-Powered-By header. This header allows the server to advertise the technology that is powering it. As a security concern, when possible, I'll remove this from sites that I publish. I feel that telling malicious attack bots what you're running on will help them exploit any vulnerabilities your stack might have.
Added an expectedText option. This is text that we expect to be present in the body of the response from the server. By default it is case insensitive but you can change that by supplying an object instead of a string.