# Advanced Usage In Rusty Web, you have full control over the socket stream. You can stream the response however you like. ## Request You can access the common variables from request struct. * request.query_params - It is a key values pair of query parameters. Type: `HashMap>`. * request.headers - It is a key values pair of request headers. `HashMap>` * request.stream - The socket TcpStream for sending/receiving data. * request.context - This will contain the information about how to handle the further request. * request.pathname - Current pathname of the request. * request.raw_path - Full path of the request including query params. * request.partial_body - This is incomplete body bytes. Use this, if you are trying to implement custom response. ## Response You can stream the HTTP response manually if you want. * response.request - The request object is itself available in the response. ## Extracting request body To access raw request body, you can use `request.body()` method. For this `Content-Length` header must be specified in the request.