Ich frage dies, weil immer, wenn ich mit der Maus über einen Link zu einer Homepage fahre (z. B. http://www.example.com)
bemerke ich, dass immer ein abschließender Schrägstrich hinzugefügt wird (wie in der Statusleiste des Browsers angegeben), ob der Link zur Homepage ein href-Attribut enthält, das mit endet Ein Schrägstrich oder nicht. Wenn ich mich jedoch auf der Startseite befinde, wird die angezeigte URL nicht mit einem Schrägstrich versehen.
Ich habe versucht, einen Schrägstrich in die URL-Leiste einzugeben. Bei aktiviertem Firebug stelle ich fest, dass die Site immer den Status 200 OK zurückgibt. Ein Artikel hier , der dies beschreibt, besagt, dass ein Schrägstrich am Ende eine 301-Umleitung vermeidet. Aber ich sehe keine Weiterleitung, auch nicht auf dieser Seite.
Könnte dies eine Browserfunktion sein, die den Schrägstrich anfügt?
?
in der URL), was ziemlich albern ist, IMO.Antworten:
Ja, alle Mainstream-Browser "hängen einen Schrägstrich an die HTTP-Anforderung an", wenn sie eine leere Domain-URL (dh die Homepage) anfordern. Dies ist tatsächlich notwendig, um die HTTP - Anforderung gültig zu machen, die für die
http://example.com/
ist:Beachten Sie den
/
(Schrägstrich) in der ersten Zeile - dies ist die angeforderte URL. Es ist nicht gültig, hier nichts zu haben. Von RFC 2616 :Sie müssen sich die HTTP-Anforderung ansehen, die der Browser an den Server sendet. Die in der "Statusleiste des Browsers" angezeigte URL oder sogar die URL in der Adressleiste können unterschiedlich sein - benutzerfreundlicher. Google Chrome hat nicht den Schrägstrich in der Statusleiste anzuhängen, obwohl der Schrägstrich in der Anforderung vorhanden ist.
Wenn Sie angeben
http://example.com
(kein Schrägstrich), tritt keine 301-Umleitung auf, da der Browser die HTTP-Anforderung korrigiert, bevor sie ausgeführt wird.Beachten Sie, dass dies anders ist als Schrägstriche, die an das Ende von URLs angefügt werden, wenn ein Pfad / Verzeichnis vorhanden ist. z.B.
http://example.com/directory/
. Der Artikel, auf den Sie verlinken, scheint beide gleich zu behandeln und scheint IMO nicht ganz korrekt zu sein. Wenn Siehttp://example.com/directory
(kein Schrägstrich) angefordert haben, hängt der Browser keinen Schrägstrich an und ja, die meisten Server leiten zuhttp://example.com/directory/
(Schrägstrich) um - dies ist jedoch vom Server abhängig. es könnte einfach kaputt gehen! Unter Apache hängt dies beispielsweise davon ab, auf welcheDirectorySlash
Direktive gesetzt wirdon
.quelle
example.com
oderexample.com/
beide genau dieselbe Anforderung an den Server erforderlich ist.