URL'lerde yıldız işareti kullanabilir miyim?


13

*Bir URL'de yıldız işareti ( ) kullanmamam için herhangi bir neden var mı?

Arka fon:

Yıldız ile, bu güzel ve kullanıcı dostu (ya da ne düşünüyorsun ??) URL'leri sağlayabilir:

  • example.com/some/folder/search-phrase*
    / some / folder / dizininde bulunan ve "search-expression" ile başlayan adlara sahip sayfaları aramak anlamına gelir .

  • example.com/some/**/*search-phrase*
    adında herhangi bir yerde "arama ifadesi" bulunan herhangi bir sayfayı aramak anlamına gelir .

  • example.com/some/folder/*
    / some / folder / dizinindeki tüm sayfaları listelemek anlamına gelir (/ some / folder / index sayfasını göstermek yerine) .


1
bakınız benzer SO soru
Su '

1
Benzer başka bir SO sorusu: URL'de yıldız işareti olabilir mi? . Onları bulamadım, çünkü Asterisk'i Asterix ile yazdım: - / düzeltilene kadar (aşağıdaki Asterix cevabına bakınız :-)).
KajMagnus

@KajMagnus Bugün URL'lerinde yıldız işareti kullanarak ilk kez bir site buldum. Güncellenmiş cevabımı aşağıya bakın.
Nick

Yanıtlar:


16

URL'lerde Asterix kullanma hakkında

URL'nizde bir Asterix kullanmak büyük olasılıkla harika bir fikir değildir, çünkü:

  1. UTF-8 veya ASCII'nin hiçbiri şu anda bir Asterix'i gösteremiyor.
  2. Standart bir tarayıcı adres çubuğundaki lekeden biraz daha fazlası olurdu.
  3. Çok sevdiğinden şüpheliyim. Ve oldukça büyük arkadaşları var.
  4. Sadece garip.

URL'lerde Yıldız işareti kullanma hakkında

Bir URL'de yıldız işareti (*) kullanmak (ve evet, baştan sona demek istediğini biliyorum) de harika bir fikir değil. Bir Çünkü ayrılmış bir karakterdir, başka bir yerde kullanılmadığı; URL şemanız sizin için kullanıcı dostu görünse de, çok azı bunu denemeyi düşünecek ve URL'lerde joker karakterlerin anlamını anlamak zor olduğundan tahmin edilemeyen sonuçlar vermesi muhtemeldir. (Açıklamalarınızı okuyana kadar tüm örneklerinizin ne anlama geldiğini anlayamadım.)

Sadece bu değil, tarif ettiğiniz şeyi yapmanın daha anlamsal / anlamlı yolları da olabilir. Örneğin, bir sorgu dizesi ekleyebilir ve yönteminize nerede bulacağınızı söylemek için bir 'find' ve 'where' değişkeni kullanabilirsiniz:

'Arama ifadesi' ile başlayan sayfaları bul /some/folder/:

example.com/some/folder/?find=search-phrase&where=start

Herhangi bir yerde 'arama ifadesi' bulunan sayfaları bulun:

example.com/some/?find=search-phrase&where=anywhere

Tüm sayfaları göstermek için, bir sorgu dizesi veya joker karakter sözdizimi yerine 'all' adlı ayrı bir yöntem kullanırdım:

example.com/some/folder/all

Sorgu dizesi sözdizimi yıldız işaretlerinden çok daha yaygındır - örneğin bir sonraki Google aramasında adres çubuğunuza bakın - ve muhtemelen kodlanması daha kolay olacaktır.

Son olarak, sorgu dizelerinin görünümünü beğenmezseniz, 'arama' adı verilen bir yöntem adının başına gelebilir ve sonraki iki bloğu 'find' ve 'where' değişkenleri olarak kullanabilirsiniz. Örneğin:

example.com/some/folder/?find=search-phrase&where=start

Şunlara sahip olabilirsiniz:

example.com/some/folder/search/search-phrase/start

Ardından, URL yolunuzdaki 'arama' anahtar kelimesini kontrol etmeniz ve sonraki iki yol parçasını değişken olarak kullanarak arama yönteminizi tetiklemeniz yeterlidir.


GÜNCELLEME: İlk yıldızımı bugün bir URL'de buldum. Yeni archive.org arayüzü, tam olarak açıkladığınız şekilde (bir arama özelliğinin parçası olarak), 'tümü' anahtar kelimesi yerine kullanıyor. Örneğin:

http://wayback.archive.org/web/*/http://google.com

onun yerine

http://web.archive.org/web/20040214050058/http://www.google.com/

İlk örnek , yalnızca belirli bir tarihe ait sayfalar yerine, google.com için tüm tarihlerdeki arşivlenmiş listeleri döndürür (ikinci örnek). İlginç bir şekilde, burada canlı sayfaya bağlantı veremiyorum, çünkü Stack Exchange sitesi *karakteri %2aURL'lerde göründüğü gibi kodlar , bu da archive.org'dan bir 404 ile sonuçlanır. (Belki de URL'lerde yıldız işareti kullanmamak için başka bir neden.)

Hala 'hepsi' kadar açık olmadığını düşünüyorum, ancak URL'lerinde yıldız işareti alan diğer sitelerin örneklerini arıyorsanız, ilk gördüğüm budur.


Wrt Asterix : Ne! "Yıldız" demek istediğimi mi düşünüyorsun?
KajMagnus

Wrt Asterix : Ah, bu yüzden StackOverflow veya Webmaster'da alakalı sayfa bulamadım. Şimdi SO ile ilgili 2 sayfa buldum: URL'de yıldız işaretine izin verme ve URL'de yıldız işareti olabilir mi? - teşekkürler :-)
KajMagnus

Son kullanıcıların muhtemelen yıldızları nasıl algılayacağına dair bilgi için teşekkürler. Şimdi büyük olasılıkla bunun yerine sorgu dizelerini tercih edeceğim.
KajMagnus

(Herkes Asterix referansı merak ediyorsa: Yıldız
işareti

11

Evet, çünkü bu ayrılmış bir karakter.

Ayrılmış diğer karakterler

Yıldız işareti ("*", ASCII 2A hex) ve ünlem işareti ("!", ASCII 21 hex), belirli şemalarda özel bir öneme sahip olarak kullanılmak üzere ayrılmıştır.

Buradan: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html

DÜZENLE:

Karakterler hakkında Bölüm 2, genel sözdizimi tarafından sınırlayıcı olarak kullanılmasalar bile, hangi karakterlerin ayrıldığını, ayrıldıklarını ve neden ayrıldıklarını açıklamak için yeniden yazılmıştır. Ünlem işareti ("!"), Yıldız işareti ("*"), tek tırnak işareti ("'") ve parantezleri açma ve kapama ("(" ve ")") dahil olmak üzere, genellikle kodu çözülmeye güvensiz olan işaret karakterleri , ayrılmış ve saklanmamış arasındaki ayrımı açıklığa kavuşturmak ve umarım şema tasarımcılarının en yaygın sorusunu yanıtlamak için ayrılmış kümeye taşınmıştır.

Buradan: http://labs.apache.org/webarch/uri/rfc/rfc3986.html#modifications


Hmm, *ayrılmış bir karakter, evet. Ancak bu bir alt sınırlayıcıdır ve URI spesifikasyonunu okuduğumda bana alt tanımları uygulamaya özel bir şekilde, URI'nin yol bileşeninde kullanmanın iyi olduğu görülmektedir . - mu bu kullanım için 's Tamam anlamına *(ve ayrıca örneğin @, :, +, ,benim yaptığım şekilde)?
KajMagnus

" Belirli şemalarda özel bir öneme sahip olarak kullanılmak üzere ayrılmıştır " ifadesi ile kafam karıştı . Uygulamaya özel kendi planımı tanımlayamıyorum? Bu, alt uygulamalarla, web uygulamalarının bunları web uygulamasına özel bir şekilde kullanma niyeti olabilir mi?
KajMagnus

Değeri için, burada birileri Wikipedia'nın URL'lerde yıldız işaretlerine izin verdiğini ve bir başkasının sorun olmadığını söylüyor: Bir URL'nin yıldız işareti olabilir mi?
KajMagnus

Teknik olarak mümkün olup olmadığını değil, kullanmanız gerekip gerekmediğini sordunuz ve genel fikir, ne yaptığınızı tam olarak bilmediğiniz sürece kullanmamanızdır.
Alex

Bu genel cevaba katılıp katılmadığımı bilmiyorum. Yeni şeyler öğrenmenin bir yolu, nasıl çalıştığını bilmediğiniz bir şey yapmaktır ve sonra öğrenir ve öğrenirsiniz. Genel olarak insanlar sadece nasıl çalıştıklarını tam olarak bildikleri şeyleri yapsaydı geleceğimiz nasıl olurdu? (Bu yayınlanacak bir alfa öncesi sürüm, bu yüzden üretim için değil :-)) - Yine de bilgi ve bağlantılar için teşekkürler :-)
KajMagnus
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.