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) .
Antworten:
Hinweise zur Verwendung von Asterix in URLs
Die Verwendung eines Asterix in Ihrer URL ist wahrscheinlich keine so gute Idee, hauptsächlich weil:
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%2a
ob 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.
quelle
Ja, weil es ein reservierter Charakter ist.
Von hier aus: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html
BEARBEITEN:
Von hier aus: http://labs.apache.org/webarch/uri/rfc/rfc3986.html#modifications
quelle
*
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?