add request method validation to http routes

I reworked the request processing codepath a little here: mostly I wanted to provide request method validation and reduce some repetition.

Let me know if you think this approach is okay or have other ideas here.