Czy mogę używać gwiazdek w adresach URL?

13

Czy są jakieś powody, dla których nie powinienem używać gwiazdki ( *) w adresie URL?

Tło:

Za pomocą gwiazdek mogę podać te ładne i przyjazne (lub jak myślisz?) Adresy URL:

  • example.com/some/folder/search-phrase*
    oznacza wyszukiwanie stron o nazwach rozpoczynających się od „fraza wyszukiwania”, znajdujących się w / some / folder / .

  • example.com/some/**/*search-phrase*
    oznacza wyszukiwanie dowolnej strony z „wyszukiwanym wyrażeniem” w dowolnym miejscu w jej nazwie .

  • example.com/some/folder/*
    oznacza listę wszystkich stron w / some / folder / (zamiast pokazywania strony / some / folder / index) .

KajMagnus
źródło
1
por. podobne pytanie SO
Su '25
1
Oto kolejne podobne pytanie SO: Czy adres URL może mieć gwiazdkę? . Nie znalazłem ich, ponieważ przeliterowałem Asterisk za pomocą Asterix: - / dopóki nie zostałem poprawiony (patrz odpowiedź Asterix poniżej :-)).
KajMagnus
@KajMagnus Dziś po raz pierwszy znalazłem witrynę, używając gwiazdek w adresach URL. Zobacz moją zaktualizowaną odpowiedź poniżej.
Nick

Odpowiedzi:

16

O użyciu Asterix w adresach URL

Używanie Asterix w adresie URL prawdopodobnie nie jest tak dobrym pomysłem, głównie dlatego, że:

  1. Ani UTF-8, ani ASCII nie są w stanie obecnie oznaczać Asterix.
  2. Byłby niewiele więcej niż plamą w standardowym pasku adresu przeglądarki.
  3. Wątpię, żeby bardzo to lubił. I ma dość dużych przyjaciół.
  4. To po prostu dziwne.

O użyciu gwiazdek w adresach URL

Używanie gwiazdki (*) w adresie URL (i tak, wiem, że to właśnie miałeś na myśli przez cały czas) również nie jest świetnym pomysłem. Ponieważ jest postacią zarezerwowaną, nie jest używana nigdzie indziej; nawet jeśli schemat adresów URL wydaje się przyjazny dla użytkownika, niewielu pomyśli o wypróbowaniu go i prawdopodobnie przyniesie nieprzewidywalne wyniki, ponieważ znaczenie symboli wieloznacznych w adresach URL jest trudne do rozpoznania. (Nie mogłem powiedzieć, co oznaczają wszystkie twoje przykłady, dopóki nie przeczytam twoich opisów).

Nie tylko to, ale mogą istnieć bardziej semantyczne / znaczące sposoby robienia tego, co opisujesz. Na przykład możesz dołączyć ciąg zapytania i użyć zmiennej „find” i „where”, aby powiedzieć swojej metodzie, gdzie znaleźć:

Znajdź strony zaczynające się od „fraza wyszukiwania” w /some/folder/:

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

Znajdź strony z „wyszukiwaną frazą” w dowolnym miejscu:

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

Aby wyświetlić wszystkie strony, użyłbym osobnej metody o nazwie „wszystkie” zamiast ciągu zapytania lub składni ze znakiem zastępczym:

example.com/some/folder/all

Składnia ciągu zapytania jest znacznie bardziej powszechna niż gwiazdki - spójrz na pasek adresu przy następnym wyszukiwaniu w Google, na przykład - i prawdopodobnie łatwiej będzie również napisać kod.

Wreszcie, jeśli nie podoba ci się wygląd ciągów zapytań, możesz wstawić nazwę metody o nazwie „szukaj”, a następnie użyć dwóch kolejnych bloków jako zmiennych „znajdź” i „gdzie”. np. zamiast:

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

Możesz mieć:

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

Następnie wystarczy sprawdzić słowo kluczowe „szukaj” w ścieżce adresu URL i uruchomić metodę wyszukiwania, używając dwóch kolejnych segmentów ścieżki jako zmiennych.


AKTUALIZACJA: Dziś znalazłem swoją pierwszą gwiazdkę w adresie URL. Nowy interfejs archive.org używa go dokładnie tak, jak opisano (w ramach funkcji wyszukiwania), zamiast słowa kluczowego „wszystko”. na przykład:

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

zamiast

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

Pierwszy przykład zwraca zarchiwizowane wykazy ze wszystkich dat dla google.com, a nie tylko strony z określonej daty (drugi przykład). Co ciekawe, nie mogę tutaj link do strony aktywnej, ponieważ witryna Stack Exchange koduje *znak tak, jak %2apojawia się on w adresach URL, co powoduje 404 z archive.org. (Być może kolejny powód, aby nie używać gwiazdek w adresach URL).

Nadal uważam, że nie jest to tak jasne, jak „wszystko”, ale jeśli szukasz przykładów innych witryn, które stosują gwiazdki w swoich adresach URL, to jest to pierwszy, jaki widziałem.

Nacięcie
źródło
Wrt Asterix : Co! Myślałeś, że mam na myśli „gwiazdkę”?
KajMagnus
Wrt Asterix : Och, dlatego nie znalazłem żadnych odpowiednich stron na StackOverflow lub webmasterach. Teraz znalazłem 2 powiązane strony na SO: Zezwalanie na gwiazdkę w adresie URL i Czy adres URL może mieć gwiazdkę? - dzięki :-)
KajMagnus,
Dzięki za informację o tym, jak użytkownicy końcowi prawdopodobnie postrzegaliby gwiazdki. Teraz najprawdopodobniej wolę łańcuchy zapytań.
KajMagnus
(W przypadku, gdy ktoś zastanawia się nad odniesieniem do Asterix: błędnie napisałem Asterisk, myślałem, że to Asterix :-))
KajMagnus
11

Tak, ponieważ jest to zarezerwowana postać.

Inne zastrzeżone znaki

Gwiazdka („*”, szesnastka ASCII 2A) i wykrzyknik („!”, Szesnastka ASCII 21) są zarezerwowane do wykorzystania jako mające szczególne znaczenie w określonych schematach.

Stąd: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html

EDYTOWAĆ:

Sekcja 2 dotycząca znaków została przepisana w celu wyjaśnienia, które znaki są zarezerwowane, kiedy są zarezerwowane i dlaczego są zarezerwowane, nawet jeśli nie są używane jako ograniczniki w składni ogólnej. Znaki, które zwykle nie są bezpieczne do odkodowania, w tym wykrzyknik („!”), Gwiazdka („*”), pojedynczy cudzysłów („” „) oraz otwieranie i zamykanie nawiasów („ (”i„) ”) , zostały przeniesione do zestawu zastrzeżonego w celu wyjaśnienia różnicy między zarezerwowanym a niezastrzeżonym oraz, miejmy nadzieję, aby odpowiedzieć na najczęściej zadawane pytania projektantów schematów.

Stąd: http://labs.apache.org/webarch/uri/rfc/rfc3986.html#modifications

Alex
źródło
Hmm, *jest postacią zarezerwowaną, tak. Ale jest to ogranicznik podrzędny , a kiedy czytam specyfikację URI, wydaje mi się, że można stosować podzapresory w sposób specyficzny dla aplikacji w komponencie ścieżki URI . - Czy to nie znaczy, że jest OK, aby użytku *(a także np @, :, +, ,) w drodze zrobiłem?
KajMagnus,
Jestem zdezorientowany zwrotem „ są zarezerwowane do użycia jako mające szczególne znaczenie w ramach określonych schematów ”. Czy nie mogę zdefiniować własnego schematu aplikacji? Czy może to być intencja, z podzapunkami, aby aplikacje internetowe używały ich w określony sposób?
KajMagnus
Za to, co jest warte, tutaj ktoś mówi, że Wikipedia dopuszcza gwiazdki w adresach URL, a ktoś inny mówi, że jest w porządku: czy URL może mieć gwiazdkę?
KajMagnus
Zapytałeś, czy powinieneś go użyć, nie jeśli jest to technicznie możliwe, czy nie, a ogólna idea jest taka, że ​​jeśli nie wiesz dokładnie, co robisz, nie powinieneś go używać.
Alex
Nie wiem, czy zgadzam się z tą ogólną odpowiedzią. Sposobem na naukę nowych rzeczy jest zrobienie czegoś, czego nie wiesz, jak to działa, a następnie nauczysz się i dowiesz. Jaka byłaby nasza przyszłość, gdyby ludzie robili tylko rzeczy, o których dokładnie wiedzieli, jak działają? (Jest to wersja przed alfa, którą wydałbym, więc nie jest przeznaczona do produkcji :-)) - W każdym razie dzięki za informacje i linki :-)
KajMagnus