Pytam o to, ponieważ za każdym razem, gdy najeżdżam kursorem na link do strony głównej (np. http://www.example.com)
Zauważam, że ukośnik końcowy jest zawsze dodawany (jak widać na pasku stanu przeglądarki), czy link do strony głównej zawiera atrybut href, który kończy się na ukośnik czy nie. Ale ilekroć jestem na stronie głównej, wyświetlany adres URL nie będzie miał ukośnika końcowego.
Próbowałem wprowadzić ukośnik do adresu URL na pasku adresu URL. Po włączeniu Firebug zauważam, że witryna zawsze zwraca 200 OK. Artykuł tutaj omawianie ta stwierdza, że posiadanie ukośnik na końcu uniknie 301 przekierowanie. Ale nie widzę żadnych przekierowań, nawet na tej stronie.
Czy może to być funkcja przeglądarki dołączająca ukośnik?
?
w adresie URL), co jest dość głupie IMO.Odpowiedzi:
Tak, wszystkie przeglądarki głównego nurtu „dodają ukośnik” do żądania HTTP, gdy żądają adresu URL samej domeny (tj. Strony głównej). Jest to faktycznie konieczne, aby żądanie HTTP było ważne, co
http://example.com/
oznacza:Uwaga
/
(ukośnik) w pierwszym wierszu - jest to żądany adres URL. Nie ma tutaj niczego . Z RFC 2616 :Musisz spojrzeć na żądanie HTTP wysyłane przez przeglądarkę do serwera. Adres URL wyświetlany na „pasku stanu przeglądarki”, a nawet adres URL na pasku adresu może być inny - bardziej przyjazny dla użytkownika. Google Chrome nie dołącza ukośnika końcowego na pasku stanu, chociaż ukośnik jest obecny w żądaniu.
Przekierowanie 301 nie występuje, jeśli podasz
http://example.com
(bez ukośnika), ponieważ przeglądarka koryguje żądanie HTTP przed jego wykonaniem.Pamiętaj, że różni się to od dodawania ukośników na końcu adresów URL, gdy istnieje ścieżka / katalog. na przykład.
http://example.com/directory/
. Artykuł, do którego linkujesz, wydaje się traktować tak samo i nie wydaje się być całkowicie poprawną IMO. Jeśli poprosiłeśhttp://example.com/directory
(bez ukośnika), przeglądarka nie dołącza ukośnika i tak, większość serwerów przekieruje 301 nahttp://example.com/directory/
(ukośnik) - ale to zależy od serwera; może po prostu się zepsuć! Na przykład w przypadku Apache zależy to od ustawieniaDirectorySlash
dyrektywy naon
.źródło
example.com
lubexample.com/
oba wymagają dokładnie tego samego żądania do serwera.