# Request and response VCL objects

In VCL, there several important objects that you need to be aware of. These objects can be accessed and manipulated using VCL.

req

  The request object. When Varnish has received the request the req object is created and populated. Most of the work you do in vcl_recv you do on or with the req object.

bereq

  The backend request object. Varnish constructs this before sending it to the backend. It is based on the req object.

beresp

  The backend response object. It contains the headers of the object coming from the backend. If you want to modify the response coming from the server you modify this object in vcl_backend_response.

resp

  The HTTP response right before it is delivered to the client. It is typically modified in vcl_deliver.

obj

  The object as it is stored in cache. Read only.