Quali sono le conseguenze per l'uso delle intestazioni di posizione relativa?


17

Secondo le specifiche , le intestazioni di posizione utilizzate in un reindirizzamento richiedono un nome server

HTTP/1.1 301 Moved Permanently
...
Location: http://example.com/foo/baz/bar

Tuttavia, nel 2012, la maggior parte dei browser Web riconoscerà un percorso relativo e ti reindirizzerà alla nuova posizione utilizzando il nome del server originale

HTTP/1.1 301 Moved Permanently
...
Location: /foo/baz/bar

Ci sono conseguenze negative / sorprendenti sull'uso degli URL relativi nelle intestazioni della posizione? La mia particolare preoccupazione è il modo in cui Google / i motori di ricerca lo interpreteranno, ma se c'è qualcos'altro a cui non sto pensando, mi piacerebbe ascoltarlo.


Potresti citare il bit esatto da cui ricevi questo requisito? Non è una sfida, non lo vedo immediatamente e non ho voglia di leggere un intero RFC per trovarlo. Inoltre, stai citando le specifiche HTTP 1.0 ma usando le intestazioni HTTP 1.1 nei tuoi esempi. (Che può cambiare o meno il contenuto consentito.)
Su

La sezione 10.11. tools.ietf.org/html/rfc1945#page-44 Non c'è nulla, per quanto ne sappia , nelle specifiche 1.1 che "risolvono" questo.
Alan Storm,

Risposte:


15

Secondo la versione corrente dello standard HTTP / 1.1, RFC 2616, il valore Locationdell'intestazione deve essere un URI assoluto .

Tuttavia, nel progetto di standard preparato dal gruppo di lavoro HTTPbis per sostituire eventualmente RFC 2616, questo è stato modificato per consentire anche gli URI relativi, apparentemente perché :

"La definizione dell'intestazione della posizione [in RFC 2616] differisce in vari modi da come almeno i browser Web devono gestirli per interagire con i contenuti sul Web"

In pratica, AFAIK praticamente tutti i principali browser e motori di ricerca comprendono e accettano i reindirizzamenti HTTP agli URL relativi. Tuttavia, fino a quando la bozza HTTPbis un giorno diventerà lo standard ufficiale e verrà ampiamente adottata, ci saranno sempre alcuni agenti utente nuovi o oscuri che implementano lo standard corrente sulla lettera e accettano solo URL assoluti. Pertanto, la cosa sicura da fare, per ora, è usare solo URL assoluti nelle Locationintestazioni, come suggerito dalla legge di Postel :

"Sii prudente in ciò che invii, liberale in ciò che accetti."


3
RFC 2616 è stato ormai obsoleto dal 7231, che consente URL relativi nelle intestazioni di posizione. Gli
interpreti

6

La sezione 14.30 della HTTP 1.1 RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30 non è significativamente diversa. Non so che vedrai delle effettive limitazioni pratiche per questo.

L'unica volta che ho visto anche un avviso su questo problema è quando testavo in Lynx e la posizione non era assoluta, ti avvertiva "Valore della posizione non assoluto" - ma se ricordo bene, ti lascerebbe comunque andare nella nuova posizione. Ho appena testato Lynx 2.8.7 e sembra che non lo faccia più, anche se potrebbe essere un problema di configurazione.

Ora dici:

La mia particolare preoccupazione è il modo in cui Google / i motori di ricerca lo interpreteranno, ma se c'è qualcos'altro a cui non sto pensando, mi piacerebbe ascoltarlo.

Credo che questo meriti un test. Impostarei un URL, lo inserirò nella Sitemap XML del tuo sito e farei in modo che quell'URL sia un reindirizzamento come descrivi. Penso che la cosa da fare sia controllarlo utilizzando Strumenti per i Webmaster di Google e vedere se ci sono conseguenze negative.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.