The most common actions to return are these:
- When you return pass the request and subsequent response will be passed to and from the backend server. It won't be cached. pass can be returned from vcl_recv.
- When you return hash from vcl_recv you tell Varnish to deliver content from cache even if the request otherwise indicates that the request should be passed.
- Deliver the object to the client. Usually returned from vcl_backend_response.
- Restart processing of the request. You can restart the processing of the whole transaction. Changes to the req object are retained.
- Retry the request against the backend. This can be returned from vcl_backend_response or vcl_backend_error if you don't like the response that the backend delivered.