La barra finale viene aggiunta automaticamente al clic dell'URL della home page nel browser?


17

Lo sto chiedendo perché ogni volta che passo con il mouse su un collegamento a una home page (ad esempio http://www.example.com), noto che viene sempre aggiunta una barra finale (come osservato nella barra di stato del browser) se il collegamento alla home page contiene un attributo href che termina con una barra oppure no. Ma ogni volta che mi trovo nella home page, l'URL visualizzato non presenta una barra.

Ho provato a inserire una barra nell'URL nella barra degli URL. E con Firebug abilitato, noto che il sito restituisce sempre uno stato 200 OK. Un articolo qui che discute questo afferma che avere una barra alla fine eviterà un reindirizzamento 301. Ma non vedo alcun reindirizzamento, nemmeno su questa pagina.

Potrebbe essere questa una funzionalità del browser che sta aggiungendo la barra?


Sì. Ad esempio, penso che Opera nasconda la barra (e talvolta nasconde anche il protocollo che a volte mi fa impazzire su dev!) ...
Matt

Qual è esattamente la domanda qui? (O il punto della domanda.) E qual è il "sito" a cui ti riferisci? Se controlli proprio qui con i webmaster, ad esempio, noterai che in Firefox e Chrome (non sto facendo un giro completo di test), ciò che descrivi per quanto riguarda l'aggiunta di una barra non accade. In realtà sembra forzare la rimozione della barra se si tenta di aggiungerne una, del resto.
Su '14

@Su ', mi riferisco a qualsiasi sito e la barra di stato si riferisce a quella visualizzata nella parte inferiore di qualsiasi browser e la barra dell'URL si riferisce alla barra degli indirizzi in alto. Scusa se ti ho creato confusione.
Domanda Overflow

2
@Matt Opera nasconde anche la stringa di query (bit dopo ?nell'URL) che è piuttosto sciocca IMO.
DisgruntledGoat

Risposte:


28

Sì, tutti i browser mainstream "aggiungono una barra" alla richiesta HTTP quando richiedono un URL di dominio nudo (es. La homepage). Questo è effettivamente necessario per rendere valida la richiesta HTTP, che per http://example.com/è:

GET / HTTP/1.1
Host: example.com

Nota /(barra) nella prima riga: questo è l'URL richiesto. Non è valido non avere nulla qui. Da RFC 2616 :

Si noti che il percorso assoluto non può essere vuoto; se nessuno è presente nell'URI originale, DEVE essere indicato come "/" (la radice del server).

È necessario esaminare la richiesta HTTP che il browser invia al server. L'URL visualizzato nella "barra di stato del browser" o persino l'URL nella barra degli indirizzi potrebbe essere diverso: più intuitivo. Google Chrome non aggiunge la barra finale nella barra di stato, sebbene la barra sia presente nella richiesta.

Nessun reindirizzamento 301 si verifica se si specifica http://example.com(nessuna barra) perché il browser corregge la richiesta HTTP prima che venga effettuata.

Nota che questo è diverso dalle barre che vengono aggiunte alla fine degli URL quando esiste un percorso / directory. per esempio. http://example.com/directory/. L'articolo a cui ti colleghi sembra trattare entrambi allo stesso modo e non sembra essere IMO del tutto corretto. Se hai richiesto http://example.com/directory(nessuna barra), il browser non aggiunge una barra e sì, la maggior parte dei server reindirizzerà a 301 http://example.com/directory/(barra), ma questo dipende dal server; potrebbe semplicemente rompersi! Su Apache, ad esempio, dipende dalla DirectorySlashdirettiva impostata on.


Per aggiungere la risposta, ogni volta che si collega alla propria home page aggiungere la barra finale per salvare le risorse del server.
Anagio,

5
@Anagio Non credo che tu capisca la risposta. Non risparmieresti affatto le risorse del server perché non c'è reindirizzamento. Un dominio con e senza barra è identico al 100%. In altre parole, non c'è assolutamente modo di restituire contenuti diversi per ciascuno (cosa che puoi fare con gli URL delle directory).
DisgruntledGoat

1
@DisgruntledGoat se si interrompe la barra finale e il server reindirizza, quindi l'aggiunta di una barra finale nei collegamenti salverebbe il server dal ricaricare la pagina. Questo è tutto ciò a cui stavo arrivando, per mettere a tacere
Anagio,

5
@Anagio Quell'articolo riguarda le barre finali per le directory , mentre questa domanda riguarda una barra finale solo nel dominio . Come indicato nella risposta precedente, non fa differenza, perché un collegamento example.como example.com/entrambi richiedono la stessa richiesta esatta al server.
DisgruntledGoat

3
... perché il browser "correggerà" questo.
unor
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.