"Http | https" içermeyen URL


89

Bir iş arkadaşımdan, bir bağlantıdaki bir URL'nin "http | https" kısmının çıkarılmasının, söz konusu URL'nin, üzerinde bulunduğu sayfanın kullandığı düzeni kullanmasını sağlayacağını öğrendim.

Örneğin, sayfama http://www.example.com adresinden erişiliyorsa ve bir bağlantım varsa (öndeki '//' işaretine dikkat edin):

<a href="https://www.google.com">Google</a>

Bu bağlantı http://www.google.com adresine gidecek .

Ben sayfasına erişmek Ama eğer https://www.example.com aynı bağlantı ile, bu gidecek https://www.google.com

Bununla ilgili daha fazla bilgi için çevrimiçi bakmak istedim, ancak iyi bir arama ifadesi bulmakta güçlük çekiyorum. "HTTP'siz URL'leri" ararsam, döndürülen sayfalar şu biçime sahip url'ler hakkındadır: "www.example.com", aradığım şey bu değil.

Buna şemasız URL mi diyorsunuz? Protokolsüz bir URL mi?

Bu tüm tarayıcılarda çalışıyor mu? FF ve IE 8'de test ettim ve her ikisinde de çalıştı. Bu bir standardın parçası mı yoksa daha fazla tarayıcı mı test etmeliyim?



1
Referans için (hangi terimleri arayacağımı sorduğun için), beni orijinal StackOverflow sorusuna getiren Google araması şuydu: "protokolsüz mutlak url"
David

Bunun bir http mi yoksa https mi olduğunu belirtmiyorsunuz, böylece tarayıcı, bağlantının aynı sayfadan geldiğini varsayarak son sayfayı alarak sizin için karar veriyor.
raym0nd

Teşekkürler David,
kopyaya

1
@David: Tam olarak, bir protokolü yoksa buna mutlak bir URL demezsiniz; daha ziyade göreceli bir URL'dir.
Gumbo

Yanıtlar:



15

Bu adlandırılan ağ yolu referans (adlandırılır eksik parçası schemeya da protocol) RFC 3986, Bölüm 4.2 de tarif

4.2 Göreli Referans

Göreli bir referans, başka bir hiyerarşik URI'nin isim uzayına göre bir URI referansını ifade etmek için hiyerarşik sözdiziminden (Bölüm 1.2.3) yararlanır.

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

Hedef URI olarak da bilinen göreceli bir referansla atıfta bulunulan URI, Bölüm 5'teki referans çözümleme algoritması uygulanarak elde edilir.

İki eğik çizgi karakteriyle başlayan göreli bir referans, bir ağ yolu referansı olarak adlandırılır (vurgu benim); bu tür referanslar nadiren kullanılır. Tek bir eğik çizgi karakteriyle başlayan göreli referans, mutlak yol referansı olarak adlandırılır. Eğik çizgi karakteriyle başlamayan göreceli bir referansa göreceli yol referansı denir.

İki nokta üst üste karakteri (örneğin, "this: that") içeren bir yol parçası, bir şema adıyla karıştırılacağı için, göreceli bir yol referansının ilk parçası olarak kullanılamaz. Göreli bir yol referansı yapmak için böyle bir bölümden önce bir nokta bölüt (örneğin, "./this:that") gelmelidir.


// html'deki temel etikette kullanılamaz. <Base href = "// abc.com/" ve göreli bir resim url'si <img src = "/ img / logo.jpg> belirledim. Ancak tarayıcıda açıldığında resim bağlantısı file: /// abc olacak. com / img / logo.jpg. Çözüm var mı?
Scott Chu
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.