Zazwyczaj, gdy widzę //
, zwykle następuje po pewnym prefiksie protokołu, takim jak http:
lub ftp:
. Nigdy nie widziałem go umieszczonego nigdzie indziej. Na przykład,
http://www.google.com/
jest typowym adresem URL.
Znalazłem jednak dwie następujące składnie, aby uzyskać różne wersje tej samej witryny,
Myślałem, że //
gdziekolwiek poza specyfikacją protokołu byłoby nieprawidłowe. Ku mojemu zaskoczeniu się myliłem. Co takiego jest w zakończeniu, //
że tworzysz inną wersję tej samej strony?
EDYTOWAĆ:
Ktoś w tej witrynie musiał się przekonać, ponieważ oba linki znajdują się teraz na tej samej stronie.
///
lub////
na końcu adresu URL spowodowało tym samym miejscu co/
gdzie//
zrobił wynik w coś innego.\\HostName[@Port]\SharedFolder\Resource
Odpowiedzi:
Wiodące
//
jest częścią składni adresu URL. Wynalazca sieci przeprosił za ten błąd .Jeśli chodzi o końcowe
//
, to tak naprawdę nie jest to podwójny ukośnik. Pierwszy ukośnik oddziela nazwę hosta od ścieżki. Ostatni ukośnik to ścieżka. Serwer sieciowy może, jeśli chce, traktować ścieżkę/
inną niż pusta, a najwyraźniej robi to weather.com. Jeśli chodzi o to, czy dzieje się to przez przypadek, czy celowo, musisz o to zapytać.źródło
http://example.com
można traktować inaczej niżhttp://example.com/
? Nie sądziłem, że tak było w przypadku pierwszego ukośnika..htaccess
zasady. Ale prawdopodobnie nie powinieneś.http://example.com
inaczej niżhttp://example.com/
na serwerze WWW, ponieważ oba mają pustą ścieżkę. Możesz traktować je inaczej w przeglądarce.GET / HTTP/1.1
:: tools.ietf.org/html/rfc2616.html#section-3.2.3W ostatnim czasie, można argumentować, że podwójny ukośnik ma odgrywać rolę. Google zaleca (na przykład, aby uniknąć przypadkowego wywołania niezabezpieczonej zawartości z bezpiecznej strony), pomijając protokół z zasobów osadzonych (arkusze stylów, js itp.), W ten sposób
Widać więc teraz, że taki adres URL bez protokołu to w pełni kwalifikowany adres URL, a nie względny adres URL (który zaczynałby się od pojedynczego ukośnika).
źródło
Faktycznie odpowiedzieć na pytanie, pierwotny opis dało protokołem
http:
(albo ewentualnieftp:
,gopher:
,mailto:
,news:
,telnet:
,wais:
,file:
iprospero:
), a następnie//
w celu wskazania, że lokalizator zasobów (URL) składni uniform używany, wówczas gospodarza (ewentualnie poprzedzona zuser:password@
), to adres właściwy początek z innym/
. Zostało to zaproponowane w RFC 1738 .W miarę ewolucji Internetu
http:
stał się dominującym protokołem, dlatego przeglądarki zakładają, żehttp://
należy dodać prefiks, jeśli go nie ma.źródło
//
wskazanie, że był używany ... Czy to prawda?isbn:1-23-456789-12-3
. W praktycehttp:
określa, że reszta będzie adresem URL. RFC są tylko propozycjami i często pozwalają na rozszerzenia, które nigdy się nie pojawiają. W pewnym momencie Tim Berners-Lee powiedział, że//
jest to „podsieć” (np.http:/govnet/whitehouse.gov
). Pomysł ten nigdy nie został wykorzystany, ale „//” pozostaje, ponieważ tyle kodu oczekuje i sprawdza go.http://www.google.com/
ihttp:%/74.125.225.97/
zarówno ważne, i//
wskazywać nazwę hosta natomiast coś innego jak%/
wskazać adres IP?Chciałbym dodać do zaakceptowanej odpowiedzi Davida:
Pomimo przeprosin wynalazcy sieci, myślę, że składnia podwójnego ukośnika służyła istotnemu celowi: wizualnemu wyróżnieniu się. Podwójne ukośniki pozwoliły na łatwe wizualne rozróżnienie adresów URL w tekście bez hiperłączy. Kiedy zobaczyłeś podwójne ukośniki, od razu pomyślałeś, że można je wprowadzić w oknie przeglądarki, podobnie jak myślałem, że tekst zawiera
@
może być użyty do wysłania e-maila. Było to szczególnie ważne w fazie przejścia do sieci, gdzie protokoły z tamtej epoki (ftp, telnet, gopher) miały swoje własne dziwne wyobrażenie, że reprezentują adresy serwerów lub ścieżki zasobów, rzadko jedno i drugie. Większość problemów związanych z podwójnymi ukośnikami nadal istniałaby, ponieważ podwójne ukośniki są najmniej kryptograficzną częścią adresu URL, pomyśl o numerach portów, procentach kodowania i rozróżnianiu wielkości liter. Ale posiadanie adresu URL takiego jak http: coś.com można łatwo pomylić z moim przykładem tutaj: coś.com. Z drugiej strony spójrz na http: //, jak świeci jak diament. Podwójne ukośniki były ważną częścią symboliki sieciowej i uważam, że przyspieszyło to również jej tempo adopcji, nawet jeśli było to niezamierzone.Mogły także ułatwić zadanie AmigaOS rozróżniania nazw plików i adresów URL, ponieważ AmigaOS używał składni ścieżki pliku
volume:path/to/destination
. :)źródło