I need to redirect the user from one page to another, but I need to maintain the original referer string. So, for example, if they start out on http://www.othersite.com/pageA.jsp, click a link that takes them to http://www.example.com/pageB.jsp, which then executes a 302 redirect to http://www.example.com/pageC.jsp, I need the referer string to contain http://www.othersite.com/pageA.jsp
Is this the normal behavior for a 302 redirect? Or would my original referer get dropped, in favor of http://www.example.com/pageB.jsp
? That would not be desirable.
I don't know if it makes any difference, but I'm working in JSP, and I'm using response.sendRedirect()
to execute the 302 redirect.
I should mention that I did an experiment with this, and it seems to have kept the original referer string (http://www.othersite.com/pageA.jsp
) but I just wanted to make sure this was the normal default behavior, and not something weird on my end.
Although I'm currently using a 302 redirect, I could probably use a 301 redirect instead. Do you know if the behavior for 301 redirects is any more reliable?
Short answer is it's not specified in the relevant RFC 2616 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36 either for the Referer header or the 302 status code.
Your best bet is to do a test with several browsers and see if there's a consensus behaviour.
For full belt and braces, encode the original referrer in the redirect URL so you can guarantee to retrieve it.