Чи можна використовувати зірочки в URL-адресах?


13

Чи є причини, які я не повинен використовувати зірочку ( *) в URL-адресі?

Фон:

Зірочками я можу надати ці приємні та зручні (або як ви думаєте ??) URL-адреси:

  • example.com/some/folder/search-phrase*
    означає пошук сторінок із іменами, що починаються з "пошукової фрази", розташованої в / деякому / папці / .

  • example.com/some/**/*search-phrase*
    означає пошук будь-якої сторінки з "пошуковою фразою" в будь-якому місці її назви .

  • example.com/some/folder/*
    означає перелічити всі сторінки в / деякому / папці / (а не показувати / деякі / папки / індексну сторінку) .



1
Ось ще одне подібне питання ТА: Чи може URL-адреса мати зірочку? . Я не знайшов їх, тому що я написав зірочку з Asterix: - /, поки мене не виправили (див. Відповідь Астерікс нижче :-)).
KajMagnus

@KajMagnus Я вперше знайшов сайт із використанням зірочок у своїх URL-адресах. Дивіться мою оновлену відповідь нижче.
Нік

Відповіді:


16

Про використання Asterix в URL-адресах

Використання Asterix у своїй URL-адресі, мабуть, не така чудова ідея, багато в чому тому, що

  1. Ні UTF-8, ні ASCII на даний момент не можуть позначати астерікс.
  2. Він був би трохи більше, ніж пляма в стандартному адресному рядку браузера.
  3. Сумніваюсь, він йому дуже сподобається. І у нього є досить великі друзі.
  4. Це просто дивно.

Про використання зірочок у URL-адресах

Використання зірочки (*) в URL-адресі (і, так, я знаю, що це ви мали на увазі протягом усього часу) також не така чудова ідея. Оскільки це зарезервований персонаж, він більше ніде не використовується; незважаючи на те, що ваша схема URL здається вам зручною для користувачів, мало хто задумається спробувати її, і це, ймовірно, дасть непередбачувані результати, оскільки значення макіяжів у URL-адресах важко розрізнити. (Я не міг сказати, що означають усі ваші приклади, поки я не прочитав ваші описи.)

Мало того, але можуть бути ще кілька смислових / змістовних способів зробити те, що ви описуєте. Наприклад, ви можете додати рядок запиту і використовувати змінну "знайти" і "де", щоб сказати своєму методу, що знайти де:

Знайдіть сторінки, що починаються з фрази пошуку в /some/folder/:

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

Знайдіть сторінки з 'пошуковою фразою' будь-де:

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

Щоб показати всі сторінки, я використовував би окремий метод під назвою "всі", а не рядок запиту або синтаксис підстановки:

example.com/some/folder/all

Синтаксис рядка запиту набагато частіше, ніж зірочки - подивіться, наприклад, свій адресний рядок наступного разу, коли ви зробите пошук у Google, - і, ймовірно, буде простіше також кодувати.

Нарешті, якщо вам не подобається вигляд рядків запитів, ви можете додати ім'я методу під назвою "search", а потім використовувати наступні два блоки як змінні "find" та "where". наприклад Замість:

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

Ви можете мати:

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

Тоді вам просто потрібно перевірити ключове слово "пошук" у вашому URL-адресі та запустити спосіб пошуку, використовуючи наступні два сегменти шляху як змінні.


ОНОВЛЕННЯ: Сьогодні я знайшов свою першу зірочку в URL-адресі. Новий інтерфейс archive.org використовує його саме так, як ви описуєте (як частину функції пошуку), замість ключового слова "всі". наприклад:

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

замість

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

Перший приклад повертає архівовані списки з усіх дат для google.com, а не лише сторінки з певної дати (другий приклад). Цікаво, що я не можу тут посилатись на сторінку в реальному часі, тому що сайт Stack Exchange кодує цей *символ як %2aколи він відображається в URL-адресах, що призводить до отримання 404 від archive.org. (Можливо, ще одна причина не використовувати зірочки в URL-адресах.)

Я все ще думаю, що це не так зрозуміло, як "все", але, якщо ви шукаєте приклади інших сайтів, які приймають зірочки у своїх URL-адресах, це перший, який я бачив.


Wrt Asterix : Що! Ви думали, що я маю на увазі "Зірочку"?
KajMagnus

Wrt Asterix : О, тому я не знайшов релевантних сторінок у StackOverflow або Webmasters. Тепер я знайшов 2 пов’язані сторінки на SO: Дозволити зірочку в URL-адресі та чи може URL-адреса мати зірочку? - дякую :-)
KajMagnus

Дякуємо за інформацію про те, як кінцеві користувачі, мабуть, сприймуть зірочки. Тепер я, швидше за все, віддаю перевагу рядкам запитів.
KajMagnus

(Якщо хтось цікавиться посиланням на Asterix: Я неправильно написав зірочку, я подумав, що це Астерікс :-))
KajMagnus

11

Так, тому що це зарезервований персонаж.

Інші зарезервовані символи

Зірочка ("*", шестигранник ASCII 2A) та знак оклику ("!", ASCII 21 шістнадцятковий) зарезервовані для використання, оскільки мають особливе значення у конкретних схемах.

Звідси: http://www.w3.org/Addressing/URL/4_URI_Recommentations.html

Редагувати:

Розділ 2 про символи був переписаний, щоб пояснити, які символи зарезервовані, коли вони зарезервовані і чому вони зарезервовані, навіть коли вони не використовуються як роздільники загальним синтаксисом. Символи знаків, які зазвичай небезпечні для розшифровки, включаючи знак оклику ("!"), Зірочку ("*"), одноцитата ("'"), а також дужки, що відкриваються та закриваються ("(" і ")") , були переміщені до зарезервованого набору, щоб уточнити відмінність між зарезервованим і незарезервованим, і, сподіваємось, відповісти на найпоширеніше питання дизайнерів схем.

Звідси: http://labs.apache.org/webarch/uri/rfc/rfc3986.html#modifications


Хм, *це зарезервований персонаж, так. Але це підрозділювач , і коли я читаю специфікацію URI, мені здається, що добре використовувати подделімеси в конкретному додатку в компоненті шляху URI . - Хіба це не означає , що це нормально для використання *(а також , наприклад @, :, +, ,) в тому , як я зробив?
KajMagnus

Мене бентежить фраза " зарезервовані для використання, оскільки мають особливе значення в конкретних схемах ". Чи не можу я визначити власну конкретну схему програми? Чи може це бути наміром, якщо підрозділи розмежують, веб-додатки використовують їх у певному режимі веб-додатків?
KajMagnus

Для чого це варто, тут хтось каже, що Вікіпедія дозволяє зірочки в URL-адресах, а хтось інший каже, що це нормально: може URL-адреса має зірочку?
KajMagnus

Ви запитали, чи варто використовувати його, не якщо це технічно можливо чи ні, і загальна ідея полягає в тому, що, якщо ви точно не знаєте, що ви робите, ви не повинні ним користуватися.
Алекс

Я не знаю, чи згоден я з цією загальною відповіддю. Спосіб дізнатися нове - це зробити щось, чого ви не знаєте, як це працює, і тоді ви навчитесь і дізнаєтесь. Яким було б наше майбутнє, якби люди взагалі робили лише те, що точно знали, як працюють? (Я буду випускати попередню альфа-версію, тому вона не призначена для виробництва :-)) - Дякую за інформацію та посилання все одно :-)
KajMagnus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.