Will a 302 redirect maintain the referer string?

http-referer, http-status-code-302, jsp, redirect, referrer

Solution

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.

Problem

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?

Original source