Soru Web tarayıcıları her zaman bir alan adından sonra izleyen bir eğik çizgi gönderir mi?


Tarayıcıların izleyen eğik çizgi ile ilgili bir ana bilgisayara nasıl bir URL gönderdiğine dair tutarlılık ve / veya standart var mı?

Anlamı, eğer yazdığımda http://example.com Bir web tarayıcısının adres çubuğunda, tarayıcı, bir izleyen eğik çizgi ekleyeceğini varsayalım (http://example.com/) ya da değil?


25
2018-04-05 21:50


Menşei




Cevaplar:


Tarayıcıdan sunucuya gönderilen HTTP isteği, alan adını, sadece "yol" bölümünü (alan adından sonra ilk eğik çizgiden başlayarak) içermez. Yol boş olamaz, bir / Bu durumda gönderilir.

Bir web sitesinin kökü için örnek bir GET isteği şunlar olabilir:

GET / HTTP / 1.0

/ yukarıda ihmal edilemez.


29
2018-04-05 21:53



Bunu açıklığa kavuşturmak için alan adı Host başlık (yalnızca HTTP 1.1). - jholster
Yani söylediğiniz, boş bir yolunuz olsa bile, URL'nin bir iz bırakma çizgisinin olması garantilidir. - Hank
@Hank: Ben diyorum ki bu Eğer boş bir yolun var, bekar / gönderildi. Bu, yol bölümü ise izleyen eğik çizgiler hakkında bir şey söylemez değil boş (bu durumda, tarayıcı URL çubuğunda ne olduğunu tam olarak gönderir, ancak sunucu, tarayıcıyı yanıtında yönlendirmeyi seçebilir). - Greg Hewgill
(Diğer bir deyişle, müdahale için özür dilerim.) Başka bir deyişle: yol boşsa, tarayıcı ekler. Yol boş değilse, izleyen / sunucuya eklenir (hiç eklenirse). - jholster


RFC 2616'nın söylediği gibi:

3.2.2 http URL

"Http" şeması bulmak için kullanılır   ağ kaynakları HTTP üzerinden
  protokol. Bu bölüm   şemaya özgü sözdizimi ve
  http URL’leri için semantik.

http_URL = "http:" "//" ev sahibi [":"   port] [abs_path ["?" sorgu ]]

Bağlantı noktası boşsa veya verilmemişse,   port 80 kabul edilir. Anlambilim
  tanımlanan kaynak   dinleme sunucusunda bulunan   Bu bağlantı noktasındaki TCP bağlantıları   ana bilgisayar ve istek için URI   kaynak abs_path (bölüm 5.1.2).   IP adreslerinin URL’lerde kullanımı   Mümkün olan her durumda önlenmelidir   (bkz. RFC 1900 [24]). Eğer   URL'de abs_path bulunmuyor   Olarak kullanıldığında "/" olarak verilmelidir ZORUNLU   Kaynak için istek-URI (Bölüm   5.1.2). Bir proxy, tam nitelikli olmayan bir ana bilgisayar adı alırsa   alan adı, alan adını ekleyebilir   Alınan ana bilgisayar adına. Eğer bir   vekil tamamen nitelikli alır   alan adı, vekil değiştirilmemelidir   ana bilgisayar adı.

Daha fazla oku: http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGbpjYWa

5.1.2 İstek-URI
  ...
  Örneğin,   doğrudan kaynaktan kaynak   kökeni sunucu bir TCP oluşturur   ana bilgisayarın 80 no'lu portuna bağlantı   "www.w3.org" ve satırları gönderin:

   GET /pub/WWW/TheProject.html HTTP/1.1
   Host: www.w3.org

geri kalanını   İstek. Mutlak yol olduğuna dikkat edin   boş olamaz; eğer hiç kimse yoksa   orijinal URI, bu verilmelidir   "/" olarak (sunucu kökü).

Daha fazla oku: http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU


16
2018-04-05 22:17





Unutmayın ki bir çok farklı URL'de bir yol öğesi olduğunda sorun:

http://example.com/dir

bir farklı URL göre

http://example.com/dir/

ve aslında farklı içerik içerebilir ve farklı bir arama motoru sıralaması olabilir.


9
2018-04-05 21:58



Bu iyi bir nokta. URL’yi "/" ile sonlandırmanız önerilir - Claudio Redi
@Claudio, biraz referans lütfen? - jholster
@Yaggo: google "eğik çizgi URL'si" konusuna bakın. Okuduğum tek bir yeri hatırlamıyorum üzgünüm. - Claudio Redi
Hiçbir kanıt bulamadım ve sadece kişisel görüşler buldum. Eğik çizgi olmayan URI'ler son derece popülerdir (tek başına bir şeyi karantinaya almazlar) ve onlara karşı gerçeklere dayalı argümanlar hiç görmedim. (Web'in temelde statik dosyalar olduğu zaman, dizinlere / dizinlere eklenmesi belki de fiili standarttı, ancak bugünlerde tercih etmem için bir neden göremiyorum.) - jholster
Günümüzün web sitesinde 'dizin' kavramı belirsizdir. Takip eden eğik çizgi bırakmak sunucuya "ekstra çek" yapılmasını zorlamaz kendi başına. URI'ler mutlaka bir dosya hiyerarşisini yansıtmaz veya dosyalarla ilgisi yoktur. Genelde web uygulamalarından bahsederken, bakış açınızın istatistik dosyaları hakkında olduğunu düşünüyorum. - jholster


Protokol söz konusu olduğunda, http://example.com/something ve http://example.com/something/ oldukça farklı. Bazı sunucular, böyle bir şekilde uygulandığında sizi birinden diğerine yönlendirebilir.

Saf alan adları için, her zaman bir eğik çizgi ile biten bir istek gönderir. (Alan adı, bir HTTP talebinin yol bölümünde bulunmaz, tıpkı Greg Hewgill ve diğerleri gibi yazmıştır. Bununla birlikte, başlıklara dahil edilmiştir.)

Fiddler veya WireShark gibi bir araçla kontrol edebilirsiniz.


0
2018-04-05 21:52



Bu yanlış. /something/ farklıdır /something bir HTTP anlamında. googlewebmastercentral.blogspot.com.es/2010/04/... - Ryall
@Ryall açıklamak için cevabımı düzenledi. - Venemo