Bir URL’de // ne içindir? [kapalı]


39

Genelde, gördüğümde //, http:veya gibi bazı protokol öneklerini izlemem normaldir ftp:. Başka bir yere yerleştirilmiş olduğunu hiç görmedim. Örneğin,

http://www.google.com/

tipik bir URL'dir.

Ancak, aynı sitenin farklı sürümlerini sağlamak için aşağıdaki iki sözdizimini buldum,

http://www.weather.com/

http://www.weather.com//

//Protokol şartnamesi dışında başka bir yerde geçersiz olacağını düşündüm . Sürprizime göre yanılmışım. Aynı sitenin farklı bir versiyonunun çıkmasının sona ermesi nedir //?

DÜZENLE:

Bu bölgedeki birisinin diğerinin rüzgarını yakalamış olması gerekir, çünkü her iki bağlantı da aynı sayfadadır.


9
Tahmin etmem gerekirse, yaptığınız tek şey aynı siteyi iki kez görmektir, ancak ekstra / sonuncusu CSS’i ya da bu günlerde web sitelerini biçimlendirmek için hangi çocukları kullanırsa. :)
Mark Allen

webmasters.stackexchange.com bu soru için daha uygun olabilir.
Mehper C. Palavuzlar

1
@ MehperC.Palavuzlar Geçmişe bakıldığında, evet. Ancak soru sırasında, kapsamın olduğundan daha geniş olduğunu düşündüm.
Chad Harrison

@MarkAllen De onun ilginç kullanarak dikkat etmek ///veya ////URL'nin sonunda aynı siteyi sonuçlandı /nerede // vermedi farklı bir şey sonuçlanır.
Chad Harrison

Bu arada, çift ters eğik çizgi (\), Windows'un Tekdüzen Adlandırma Sözleşmesinde sıkça görülmektedir, örneğin,\\HostName[@Port]\SharedFolder\Resource
William C

Yanıtlar:


66

Önde gelen //, URL sözdiziminin bir parçasıdır. Dünya çapındaki ağın mucidi bu hata için özür diledi .

Gerçekten, düşünürseniz, çift eğik çizgi gerekmez. Çift eğik çizgi yapmamak için tasarlayabilirdim. - Sendi Tim Berners-Lee, dünya çapındaki ağın mucidi


Firar gelince //, bu gerçekten bir çift eğik çizgi değil. İlk eğik çizgi, ana bilgisayar adını yoldan ayırır. Geçen çizgi olduğunu yolu. Bir web sunucusu, isterse, /boş bir yoldan farklı bir yolu ele alabilir ve görünüşe göre weather.com’un yaptığı gibi. Bunun kazara mı yoksa kasten mi yapıldığına gelince, onlara bunu sormanız gerekir.


O zamandan beri tamamlanmış, çünkü bir web sunucusunu sadece web kökü dışındaki bir dizini arayacak şekilde yapılandırabilirsiniz! Şapkam size bağlı iyi efendim.
Chad Harrison

http://example.comSizce farklı davranılabileceğini mi söylüyorsunuz http://example.com/? İlk eğimde bunun böyle olduğunu düşünmedim.
DisgruntledGoat

1
@DisgruntledGoat Bazı kurallar kullanarak evet yapabilirsiniz.htaccess . Ama muhtemelen yapmamalısın.
Matthew

1
Her ikisinin de boş bir yolu olduğundan, bir web sunucusundan http://example.comfarklı http://example.com/davranamazsınız. Bir tarayıcıda onlara farklı davranabilirsiniz.
David Schwartz

3
Ev sahibi başlığını neverminding, sıfır veya bir eğik çizgi aynı http isteğine çevirir: GET / HTTP/1.1: tools.ietf.org/html/rfc2616.html#section-3.2.3
SingleNegationElimination

19

Daha yakın zamanlarda, çift eğik çizginin bir rolü olduğu söylenebilir. Google , örneğin güvenli bir sayfadan güvenli olmayan bir içeriği yanlışlıkla çağırmaktan kaçınmak için) protokolü bu gibi yerleşik kaynaklardan (stil sayfaları, js vb.) Çıkarmayı önlemek için

<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>

Bu nedenle, artık böyle bir protokolsüz URL'nin göreceli bir URL değil (tek bir eğik çizgiyle başlayacak olan) tam nitelikli bir URL olduğu açıktır.


1
Bu stile "protokol göreceli" URL / URI denir. SO'da benzer sorular var.
hippietrail

1
Daha fazla tavsiye yok. Ayrıca bakınız paulirish.com/2010/the-protocol-relative-url
lorond

13

Aslında soruya cevap vermek için özgün şartname protokolünü verdi http:(ya da muhtemelen ftp:, gopher:, mailto:, news:, telnet:, wais:, file:veya prospero:) daha sonra bir // Uniform Resource Locator (URL) sözdizimi kullanılıyordu ki, o zaman (isteğe bağlı ön ekine sahip konak belirtmek için user:password@) daha sonra adrese başka birinden başlayarak uygun /. Bu, RFC 1738'de önerildi .

İnternet geliştikçe, http:baskın protokol haline geldi, bu yüzden tarayıcılar şimdi http://yoksa bir önek eklenmesi gerektiğini varsayar .


3
Cevabınız, URL ile başka bir şeyin protokolle bir noktada kullanılabileceğini //ve kullanımda olduğunu belirtmekten başka bir şey kullanılabileceğini gösteriyor gibi görünüyor ... Öyle mi?
Izkata

3
@Izkata 80'lerin ve 90'ların sonlarında, internet başlarken, çeşitli öğeler için önerilen birkaç farklı format vardı. URL'ler URN'lerin bir alt kümesiydi (bkz. RFC 3305) ve bunlar çeşitli biçimlerde olabilir, örneğin isbn:1-23-456789-12-3. Pratikte, http:gerisinin bir URL olacağını tanımlar. RFC'ler yalnızca tekliflerdir ve çoğu zaman gerçekleşmeyen uzantılara izin verirler. Bir noktada, Tim Berners-Lee bunun //bir 'alt ağ' için olduğunu söyledi (örn. http:/govnet/whitehouse.gov). Bu fikir hiç kullanılmamış, ancak '//' kodunun artık beklediği ve kontrol ettiği kadar kalır.
StarNamer

1
@ Izkata: Muhtemelen bir iletişim protokolüyle birlikte kullanılan URL dışı bir URN görmezsiniz; // bunun için. Protokolün bir kaynağın bulunduğu (muhtemelen uzak) bir ağ konumuna erişmek için kullanıldığını gösterir. Orada olan diğer veri parçalarını ve // kullanmayan diğer URN'si en bol (: örneğin, "mailto" muhtemelen tarayıcınız tanır). Bakınız: en.wikipedia.org/wiki/URI_scheme
KutuluMike

@ MichaelEdenfield Peki, şimdi merak ediyorum budur. Farklı bir şekilde kullanılması amaçlanan bir nokta var mıydı - aynı protokol ile iletişim kurabilecek farklı bir şey. Bir ham örnek olarak, niyet olabilir tek seferde boyunca olmuştur http://www.google.com/ve http:%/74.125.225.97/geçerli olması hem ve //başka bir şey sever iken bir hostname işaret %/IP adresi belirtmek?
Izkata

1
Sanmıyorum En azından, URL'ler için alternatif heirarşi şeması olan herhangi bir taslak belge / örnek / etc görmedim. Benim izlenimim her zaman TBL'nin bir URL'nin gerçek bir kaynağa (ve rastgele veriye işaret etmediğine) işaret ettiğini ve // ​​kullanmanın işleri yeterince dosyaya benzetmesini sağladığını açıkça belirtmek için bir şey istediği olmuştur . Şimdiye kadar gördüğüm her diğer URN stilinin veri bölümünde özel bir öneki yok . Bazı protokoller buna izin verir ( bence telnet ve gopher, örneğin) ama http (ler) için böyle bir şey hiç görmedim.
KutuluMike

1

David'in kabul ettiği cevabını eklemek istiyorum:

Webin mucidi özrüne rağmen, çift çizgili sözdiziminin önemli bir amaca hizmet ettiğini düşünüyorum: görsel olarak öne çıkmak. Çift eğik çizgiler, köprü metni olmayan bir metinde URL'lerin görsel olarak kolayca ayırt edilmesine izin verdi. Çift eğik çizgiler gördüğünüzde, bir metin içeren bir metin düşündüğünüz gibi bir tarayıcı penceresine girilebileceğini hemen düşündünüz.@bir e-posta göndermek için kullanılabilir. Ağa geçiş aşamasında, o dönemin protokollerinin (ftp, telnet, gopher) sunucu adreslerini veya kaynak yollarını nadiren her ikisini de temsil etmek için kendi garip nosyonlarına sahip olması özellikle çok önemliydi. Çift eğik çizgiyle ilgili sorunların çoğu hala mevcut olacaktır, çünkü çift eğik çizgiler bir URL'nin en az şifreli parçasıdır, port numaraları, yüzde kodlaması ve büyük / küçük harf duyarlılığı hakkında düşünün. Ancak http: something.com gibi bir URL’ye sahip olmak, buradaki örneğimle kolayca karıştırılabilir: something.com. Öte yandan, http: // 'e bak, elmas gibi parlıyor. Çift eğik çizgiler Web sembolizminin önemli bir parçası olmuştur ve istemeden de olsa, benimseme oranını da hızlandırdığına inanıyorum.

Ayrıca, AmigaOS'un dosya yolu sözdizimini kullandığından AmigaOS'un işini dosya adları ve URL'ler arasında ayırt etmeyi kolaylaştırmış olabilir volume:path/to/destination. :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.