Methods
A Rocket route attribute can be any one of get
, put
, post
, delete
, head
, patch
, or options
, each corresponding to the HTTP method to match against. For example, the following attribute will match against POST
requests to the root path:
#[post("/")]
The grammar for these attributes is defined formally in the rocket_codegen API docs.
HEAD Requests
Rocket handles HEAD
requests automatically when there exists a GET
route that would otherwise match. It does this by stripping the body from the response, if there is one. You can also specialize the handling of a HEAD
request by declaring a route for it; Rocket won’t interfere with HEAD
requests your application handles.
Reinterpreting
Because browsers can only send GET
and POST
requests, Rocket reinterprets request methods under certain conditions. If a POST
request contains a body of Content-Type: application/x-www-form-urlencoded
, and the form’s first field has the name _method
and a valid HTTP method name as its value (such as "PUT"
), that field’s value is used as the method for the incoming request. This allows Rocket applications to submit non-POST
forms. The todo example makes use of this feature to submit PUT
and DELETE
requests from a web form.