HTTP zaczyna się od dwóch ukośników. Np http://example.com
.
To samo dotyczy FTP. Np ftp://example.com
.
Jednak pliki „URL” zaczynają się od trzech ukośników. Np. Czytanie pliku pdf za pomocą chrome, URL będzie file:///D:/Desktop/Book.pdf
.
Dlaczego adresy URL plików używają trzech ukośników?
browser
filesystems
url
Pacerier
źródło
źródło
file://localhost/D:/Desktop/
automatycznie.Odpowiedzi:
Jak wspomnieli inni, schemat pliku ma postać „plik: // <host> / <ścieżka>”. Chociaż większość przeglądarek nie będzie miała problemu tylko z dwoma ukośnikami, i słusznie.
Wszystkie rzeczy są jednakowe, potrójny ukośnik i słowo kluczowe „localhost” istnieją tylko po to, aby zapewnić zgodność z prawidłową składnią URI / URL. W kontekście schematu plików host nie ma znaczenia, ponieważ ładuje się bezpośrednio z systemu plików bez wyraźnego protokołu przesyłania lub ścieżki dokumentu serwera. Ponieważ nie jest to HTTP, nie można go załadować ze standardowego serwera WWW, na którym teoretycznie można skonfigurować wiele lokalnych hostów wirtualnych. I nie można go załadować ze standardowego woluminu sieciowego, który technicznie jest innym „hostem”, ponieważ przeglądarka używa po prostu nazwy woluminu, np. „Plik: /// volume / foo”. Wreszcie, próbowanie czegoś takiego jak „file: //example.com/some/file” nie działa. Prawdopodobnie istnieje jakiś powód, aby wspierać zewnętrznego hosta, ale nie mogę o nim myśleć.
IETF opracowuje obecnie zmiany w celu usunięcia wymogu potrójnego cięcia, chociaż wersja robocza dodaje również kilka dziwnych możliwości, takich jak
file:c|/path
i parzystefile://///host.example.com/path
.źródło
Pełna składnia to
file://host/path
.Jeśli host jest
localhost
, można go pominąć, co powodujefile:///path
.Patrz RFC 1738 - Jednolite lokalizatory zasobów (URL) :
źródło
localhost
inne protokoły, czy działa tylko w przypadkufile://
?Dennis wyjaśnił trzeci slash, potrzebny do oddzielenia go
host
odpath
, ale pozostałe dwa są o wiele bardziej interesujące ...Okazuje się, że były one bezużytecznym i nieco arbitralnym dodatkiem do składni adresu URL. Tim Berners-Lee, wynalazca World Wide Web i autor wielu jego standardów (w tym RFC, do którego Dennis się odniósł), ubolewał nad użyciem podwójnego ukośnika w wywiadzie z 2009 roku.
http://bits.blogs.nytimes.com/2009/10/12/the-webs-inventor-regrets-one-small-thing/
Tak więc, z wyjątkiem drobnego (i nietypowego) upływu czasu w prognozowaniu jakieś 18 lat temu, adres URL pliku mógł być po prostu łatwiejszy
file:/D:/Desktop/Book.pdf
niżfile:///D:/Desktop/Book.pdf
.Aby odpowiedzieć na twoje pytanie, nie ma dobrego powodu, dla którego adresy URL zawierają 3 ukośniki.
Aktualizacja: Jak wskazuje @ComFreek w komentarzach, od 2017 roku
file:/D:/...
powyższy przykład jest teraz ważny! Dzieje się tak dzięki RFC 8089 , który specjalnie wywołuje tę poprawkę z poprzedniego standardu ...Co za czas na życie.
źródło
http:example.com
zamiasthttp://example.com
To może nie wydawać się dużo, ale sumują się. Google otrzymuje miliony wyszukiwań dziennie. Ile linków znajduje się na stronie? Co najmniej 20. Oznacza to, że dla miliona wyszukiwań, gdyby ukośniki nie były potrzebne, można by zaoszczędzić 20 MB przepustowości.http://example.com
Może być więc powiązany z//example.com
dokumentem przesłanym przez http. Nazywa się to względnym adresem URL protokołu , wszystkie przeglądarki go obsługują.file:/D:/Desktop/Book.pdf
jest prawidłowym identyfikatorem URI pliku zgodnie z RFC 8089 (od 2017 r.), Który zastąpił RFC 1738 (1994) w aspektach URI pliku.