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?
What is a 302 redirect? Whereas a 301 redirect is a permanent relocation of your URL, a 302 redirect is a temporary change that redirects both users and search engines to the desired new location for a limited amount of time, until the redirect is removed.
When used correctly, a 302 redirect will not hurt your SEO efforts. When you choose this type of redirect, the original page remains indexed in Google and no value (link equity) is transferred to the new URL because Google knows this is just temporary.
The HyperText Transfer Protocol (HTTP) 302 Found redirect status response code indicates that the resource requested has been temporarily moved to the URL given by the Location header.
Each redirect serves a different purpose. For a permanent change that will rank for SEO, a 301 redirect is necessary and understood by search engines. 302 redirect should only be used if it is a temporary change, and they often get used because it's easier to create that instance than the permanent 301 redirect.
I don't know about the 302, but I tested the 301 on some browsers today, here the results:
SCENARIO: user clicks link on domainX that points to domainA. domainA does a 301 redirect to domainB.
referer
when landing on domainB is: domainX (even when using InPrivate browsing and even when user opens link in new tab)referer
when landing on domainB is: domainX (even when user opens link in new tab)referer
when landing on domainB is: domainX (even when user opens link in new tab)referer
when landing on domainB is: domainX (unless user opens links in new tab)referer
when landing on domainB is: domainX (even when the user opens links in new tab)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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With