2009-09-09 11 views
22

Quiero saber si la redirección 301 siempre conserva la referencia.¿La redirección 301 siempre conserva la referencia?

Hago una página llamada "gotoorig_https.html" que contiene un hipervínculo a una página "orig_https.asp".
"orig_https.asp" 301 se redirigirá a "dest.html" que muestra el document.referrer.

En este 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 

También hago una página llamada "gotoorig_http.html", que contiene un hipervínculo a una página "orig_http.asp". "orig_http.asp" 301 se redirigirá a "dest.html" que muestra el document.referrer.

En este 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 qué ocurre el último caso?

Respuesta

26

RFC no especifica ningún comportamiento específico de referencia en la definición de estado 301, ni el comportamiento específico de 301 en Referer definición de encabezado. Por lo tanto, debo decir que aunque este comportamiento de conservación de referencia es lógico, no está definido en RFC y, por lo tanto, nunca se puede estar seguro.

+0

+1 por no confiar en dicho comportamiento. ¡Los consultantes también pueden ser falsificados! – sybreon

-2

Sobre https los navegadores no envían REFERIDOS. Esto está en el RFC.

+4

No es cierto. Entre las páginas HTTPS no hay nada en la especificación sobre los encabezados del referer, pero la especificación dice que no deberían enviarse al cambiar entre HTTP y HTTPS – blowdart

11

Al pasar entre HTTP y HTTPS, la especificación HTTP dice que NO se debe enviar un encabezado de referencia (consulte 15.1.3 en RFC2616). Sin embargo, la especificación no dice lo que debería suceder entre las páginas HTTPS.

Curiosamente, por defecto, firefox ignora la especificación en este caso, pero puede configurarse estableciendo la configuración de configuración network.http.sendSecureXSiteReferrer.

Cuestiones relacionadas