O redirecionamento 301 sempre preserva o referenciador?
-
22-09-2019 - |
Pergunta
Quero saber se o redirecionamento 301 sempre preserva o referenciador.
Eu faço uma página chamada "Gotoorig_Https.html", que contém um hiperlink para uma página "orig_https.asp".
"Orig_https.asp" será redirecionado para "dest.html", que mostra o documento.Referrer.
Nesse caso,
http page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
https page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
Também faço uma página chamada "Gotoorig_Http.html", que contém um hiperlink para uma página "orig_http.asp". "Orig_http.asp" será redirecionado para "dest.html", que mostra o documento.Referrer.
Nesse caso,
http page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer preserves
https page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer DOES NOT preserve.
Por que o último caso acontece?
Solução
RFC não especifica nenhum comportamento específico do referente na definição de status 301, nem um comportamento específico de 301 Referer
definição de cabeçalho. Assim, devo dizer que, embora esse comportamento de preservação de referências seja lógico, ele não é definido na RFC e, portanto, você nunca pode ter certeza.
Outras dicas
Ao passar entre http e https, a especificação HTTP diz que um cabeçalho do referente não deve ser enviado (ver 15.1.3 em RFC2616). As especificações não dizem o que deve acontecer entre as páginas HTTPS.
Curiosamente, o Firefox é o padrão de ignorar as especificações neste caso, mas pode ser feito para conformar a configuração do Network.http.sendSecurexSiteRefererRer.
Sobre o HTTPS, os navegadores não estão enviando referentes. Isso está no RFC.