Why use status code 750 for redirects?

Bjørn Ruberg bjorn at ruberg.no
Fri Dec 21 23:15:57 CET 2012

On 12/21/2012 10:48 PM, James Pearson wrote:
> In the Varnish book (and every site reposting the same example), we are shown
> how to make a redirect in VCL by using 'error 750'.[1]  This seems more
> roundabout than necessary - why not just use 'error 302'?  It'll end up being
> the same to the users, but is more clear in its intention.
> The only reason I can think of for not doing that is if you have any cases
> where you want to display an error page with a 302 status code, but *not*
> redirect.  But why would you want to do that?
> [1]: https://www.varnish-software.com/static/book/VCL_functions.html#example-redirecting-users-with-vcl-error

As you can see from the example you're referring to, the error 750 
defined in vcl_recv is later handled in vcl_error and "translated" to a 301.

Inside the VCL, it's often useful to define internal error codes that 
may be referred to several times, and then they are picked up in 
vcl_error where the error code is translated into something that the end 
user (or rather the browser) understands. Error codes used for internal 
handling within the VCL should not be within the numerical range where 
you'd find normal error codes.

Let's say you have a lot of situations in your VCL where you need to 
redirect to a login URL - then it's easy and efficient to define that 
redirect *once*, label it e.g. error 751, and then return "error 751;" 
where applicable in the VCL.

Of course, if you don't want or need any special handling of errors, 
you're at liberty to return a regular error code whenever you want to.


More information about the varnish-misc mailing list