Wird beim Klicken auf die URL der Homepage im Browser automatisch ein abschließender Schrägstrich hinzugefügt?

17

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?

Fragenüberlauf
quelle
Ja. Zum Beispiel glaube ich, dass Opera den Schrägstrich verbirgt (und manchmal auch das Protokoll, das mich bei Entwicklern verrückt macht!) ...
Matt
Was genau ist die Frage hier? (Oder der Punkt der Frage.) Und was ist "die" Site, auf die Sie verweisen? Wenn Sie hier beispielsweise mit Webmastern nachsehen, werden Sie feststellen, dass in Firefox und Chrome (ich mache keine vollständige Testrunde) das, was Sie beschreiben, soweit ein Schrägstrich hinzugefügt wird, nicht vorkommt . Es scheint tatsächlich zu erzwingen, dass der Schrägstrich entfernt wird, wenn Sie versuchen, einen hinzuzufügen.
Su‘
@Su ', ich beziehe mich auf eine Website und die Statusleiste bezieht sich auf die am unteren Rand eines Browsers angezeigte und die URL-Leiste bezieht sich auf die Adressleiste am oberen Rand. Entschuldigung, wenn ich Sie verwirrt habe.
Fragenüberlauf
2
@Matt Opera verbirgt auch die Abfragezeichenfolge (etwas später ?in der URL), was ziemlich albern ist, IMO.
DisgruntledGoat

Antworten:

28

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:

GET / HTTP/1.1
Host: example.com

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 :

Beachten Sie, dass der absolute Pfad nicht leer sein darf. Wenn in der ursprünglichen URI keine vorhanden ist, MUSS sie als "/" (der Server-Stamm) angegeben werden.

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 Sie http://example.com/directory(kein Schrägstrich) angefordert haben, hängt der Browser keinen Schrägstrich an und ja, die meisten Server leiten zu http://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 welche DirectorySlashDirektive gesetzt wird on.

Herr weiß
quelle
Fügen Sie den abschließenden Schrägstrich hinzu, wenn Sie eine Verknüpfung zu Ihrer Homepage herstellen, um Serverressourcen zu sparen.
Anagio
5
@Anagio Ich glaube nicht, dass du die Antwort verstehst. Sie würden keine Serverressourcen sparen, da es keine Umleitung gibt. Eine Domain mit und ohne Schrägstrich ist 100% identisch. Mit anderen Worten, es gibt absolut keine Möglichkeit , unterschiedliche Inhalte für jeden zurückzugeben (was Sie mit Verzeichnis-URLs tun können).
DisgruntledGoat
1
@DisgruntledGoat Wenn Sie den abschließenden Schrägstrich weglassen und der Server weiterleitet, erspart das Hinzufügen eines abschließenden Schrägstrichs in Links dem Server das erneute Laden auf der Seite. Das ist alles, worauf
ich
5
@Anagio In diesem Artikel geht es um abschließende Schrägstriche für Verzeichnisse , während es sich bei dieser Frage nur um einen abschließenden Schrägstrich für die Domäne handelt . Wie in der obigen Antwort angegeben, macht dies keinen Unterschied, da für eine Verknüpfung mit example.comoder example.com/beide genau dieselbe Anforderung an den Server erforderlich ist.
DisgruntledGoat
3
... weil der Browser dies "korrigiert".
oder