Kann ich in URLs Sternchen verwenden?

12

Gibt es Gründe, warum ich *in einer URL kein Sternchen ( ) verwenden sollte?

Hintergrund:

Mit Sternchen könnte ich diese netten und benutzerfreundlichen (oder was denkst du?) URLs versehen:

  • example.com/some/folder/search-phrase*
    bedeutet Suche nach Seiten mit Namen, die mit "Suchphrase" beginnen und sich in / some / folder / befinden .

  • example.com/some/**/*search-phrase*
    bedeutet Suche nach einer beliebigen Seite mit "Suchphrase" an einer beliebigen Stelle im Namen .

  • example.com/some/folder/*
    bedeutet, alle Seiten in / some / folder / aufzulisten (anstatt die Seite / some / folder / index anzuzeigen) .

KajMagnus
quelle
1
vgl. ähnliche SO Frage
'25.
1
Hier ist eine weitere ähnliche SO-Frage: Kann eine URL ein Sternchen haben? . Ich habe sie nicht gefunden, weil ich Asterisk mit Asterix geschrieben habe: - / bis ich korrigiert wurde (siehe die Asterix-Antwort unten :-)).
KajMagnus
@KajMagnus Ich habe heute zum ersten Mal eine Website gefunden, die Sternchen in ihren URLs enthält. Siehe meine aktualisierte Antwort unten.
Nick

Antworten:

16

Hinweise zur Verwendung von Asterix in URLs

Die Verwendung eines Asterix in Ihrer URL ist wahrscheinlich keine so gute Idee, hauptsächlich weil:

  1. Weder UTF-8 noch ASCII können derzeit einen Asterix bezeichnen.
  2. Er wäre kaum mehr als ein Fleck in einer Standard-Adressleiste des Browsers.
  3. Ich bezweifle, dass es ihm sehr gefallen würde. Und er hat einige ziemlich große Freunde.
  4. Es ist einfach komisch.

Hinweise zur Verwendung von Sternchen in URLs

Die Verwendung eines Sternchens (*) in einer URL (und ja, ich weiß, dass Sie das die ganze Zeit gemeint haben) ist auch keine so gute Idee. Da es sich um ein reserviertes Zeichen handelt, wird es nirgendwo anders verwendet. Auch wenn Ihr URL-Schema für Sie benutzerfreundlich erscheint, werden nur wenige darüber nachdenken, es zu versuchen, und es wird wahrscheinlich zu unvorhersehbaren Ergebnissen führen, da die Bedeutung von Platzhaltern in URLs schwer zu erkennen ist. (Ich konnte nicht sagen, was all Ihre Beispiele bedeuteten, bis ich Ihre Beschreibungen gelesen habe.)

Nicht nur das, sondern es könnte auch weitere semantische / sinnvolle Möglichkeiten geben, das zu tun, was Sie beschreiben. Sie können beispielsweise eine Abfragezeichenfolge anhängen und mit den Variablen 'find' und 'where' Ihrer Methode mitteilen, was wo zu finden ist:

Seiten, die mit 'Suchbegriff' beginnen, finden in /some/folder/:

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

Seiten mit "Suchbegriff" suchen:

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

Um alle Seiten anzuzeigen, würde ich eine separate Methode namens 'all' anstelle einer Abfragezeichenfolge oder einer Platzhaltersyntax verwenden:

example.com/some/folder/all

Die Syntax von Abfragezeichenfolgen ist weitaus häufiger als Sternchen - sehen Sie beispielsweise bei der nächsten Google-Suche in Ihrer Adressleiste nach - und wahrscheinlich ist auch die Codierung einfacher.

Wenn Sie das Aussehen von Abfragezeichenfolgen nicht mögen, können Sie dem Methodennamen den Namen "search" voranstellen und dann die nächsten beiden Blöcke als Variablen "find" und "where" verwenden. zB Anstelle von:

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

Du könntest haben:

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

Dann müssen Sie nur in Ihrem URL-Pfad nach dem Schlüsselwort "Suche" suchen und die Suchmethode unter Verwendung der nächsten beiden Pfadsegmente als Variablen auslösen.


UPDATE: Ich habe heute meinen ersten Stern in einer URL gefunden. Die neue Oberfläche von archive.org verwendet sie genau so, wie Sie sie beschrieben haben (als Teil einer Suchfunktion), anstelle eines Schlüsselworts "all". z.B:

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

Anstatt von

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

Das erste Beispiel gibt archivierte Einträge aus allen Daten für google.com zurück und nicht nur Seiten aus einem bestimmten Datum (zweites Beispiel). Interessanterweise kann ich hier keine Verbindung zur Live-Seite herstellen, da die Stack Exchange-Site das *Zeichen so codiert , als %2aob es in URLs erscheint, was zu einem 404 von archive.org führt. (Vielleicht ein weiterer Grund, keine Sternchen in URLs zu verwenden.)

Ich denke immer noch, es ist nicht ganz so klar wie "alles", aber wenn Sie nach Beispielen für andere Websites suchen, die Sternchen in ihren URLs verwenden, ist dies die erste, die ich gesehen habe.

Nick
quelle
Wrt Asterix : Was! Hast du gedacht, ich meinte "Asterisk"?
KajMagnus
Wrt Asterix : Oh, deshalb habe ich auf StackOverflow oder Webmasters keine relevanten Seiten gefunden. Jetzt habe ich 2 verwandte Seiten auf SO gefunden: Zulassen von Sternchen in URL und Kann eine URL ein Sternchen haben? - Danke :-)
KajMagnus
Vielen Dank für die Information, wie Endbenutzer die Sternchen wahrscheinlich wahrnehmen würden. Jetzt bevorzuge ich höchstwahrscheinlich Abfragezeichenfolgen.
KajMagnus
(Falls sich jemand über den Hinweis auf Asterix wundert: Ich habe Asterisk falsch geschrieben, ich dachte, es wäre Asterix :-))
KajMagnus
11

Ja, weil es ein reservierter Charakter ist.

Andere reservierte Zeichen

Das Sternchen ("*", ASCII 2A hex) und das Ausrufezeichen ("!", ASCII 21 hex) sind für die Verwendung mit besonderer Bedeutung innerhalb bestimmter Schemata reserviert.

Von hier aus: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html

BEARBEITEN:

Abschnitt 2 über Zeichen wurde umgeschrieben, um zu erklären, welche Zeichen reserviert sind, wann sie reserviert sind und warum sie reserviert sind, auch wenn sie von der generischen Syntax nicht als Begrenzer verwendet werden. Die Zeichen, deren Dekodierung normalerweise nicht sicher ist, einschließlich Ausrufezeichen ("!"), Sternchen ("*"), einfaches Anführungszeichen ("'") sowie offene und geschlossene Klammern ("(" und ")") , wurden in die reservierte Gruppe verschoben, um die Unterscheidung zwischen reserviert und nicht reserviert zu klären und hoffentlich die häufigste Frage von Schema-Designern zu beantworten.

Von hier aus: http://labs.apache.org/webarch/uri/rfc/rfc3986.html#modifications

Alex
quelle
Hmm, *ist ein reservierter Charakter, ja. Aber es ist ein Sub-Delimiter , und wenn ich die URI-Spezifikation lese, scheint es mir in Ordnung zu sein, Sub-Delims anwendungsspezifisch in der Pfadkomponente des URI zu verwenden . - Ist dies OK ist es nicht so zu verwenden *(und auch zum Beispiel @, :, +, ,) in der Art und Weise habe ich?
KajMagnus
Ich bin verwirrt von der Formulierung " sind reserviert für die Verwendung als von besonderer Bedeutung in bestimmten Schemata ". Kann ich mein eigenes anwendungsspezifisches Schema nicht definieren? Könnte dies die Absicht sein, dass Web-Apps sie in einer bestimmten Art und Weise für Web-Apps verwenden?
KajMagnus
Für das, was es wert ist, sagt hier jemand, dass Wikipedia Sternchen in URLs erlaubt und jemand anderes sagt, dass es in Ordnung ist: Kann eine URL ein Sternchen haben?
KajMagnus
Sie haben gefragt, ob Sie es verwenden sollen, nicht, ob es technisch möglich ist oder nicht, und die allgemeine Idee ist, dass Sie es nicht verwenden sollten, es sei denn, Sie wissen genau, was Sie tun.
Alex
Ich weiß nicht, ob ich dieser allgemeinen Antwort zustimme. Eine Möglichkeit, neue Dinge zu lernen, besteht darin, etwas zu tun, von dem Sie nicht wissen, wie es funktioniert, und es dann zu lernen und herauszufinden. Wie wäre unsere Zukunft, wenn die Menschen im Allgemeinen nur Dinge tun würden, von denen sie genau wissen, wie sie arbeiten? (Es ist eine Pre-Alpha-Version, die ich veröffentlichen würde, daher ist sie nicht für die Produktion gedacht :-))
Trotzdem vielen