Альтернативный синтаксис GET в URL - PullRequest
1 голос
/ 08 сентября 2010

Я унаследовал ужасный код в прошлом, но одна идея там показалась мне логичным шагом. Это использование нестандартных запросов get для ссылок внутри приложения.

Так что вместо

/search?category=23&city=Venice

когда применимо, используйте

/search/category-23;city-Venice

Этот тип Uris анализируется системой для удобного использования, и любые параметры $_GET могут по-прежнему поступать в конце URI.

Основным преимуществом является то, что никакая внешняя связь с, скажем, информацией реферера или (что гораздо важнее) запросами от других сервисов, таких как банки, случайно не переопределит информацию в специально отформатированном запросе.

Я осознаю многие недостатки этого подхода, и, как уже упоминалось, это обозначение используется только там, где это необходимо.

Вопрос в том, есть ли передовой опыт в этом деле, так как я повторно реализую эту конкретную функциональность и предпочел бы использовать готовое решение (формат key-value; не должен оставаться).

P.S. Я не могу поверить, что [best-practices] больше не является тегом: /

РЕДАКТИРОВАТЬ : Возможно, меня неправильно поняли. Я все еще использую GET, я просто хочу добавить некоторую дополнительную информацию в URL, которая не может быть случайно изменена внешними запросами или еще чем-то.

Мне нужна эта функция, я просто спрашиваю, есть ли практики. Например, я узнал вчера, что Skype (и я полагаю, что и другие сервисы) удаляют лидирующие символы ; при автоматическом связывании, поэтому лучше использовать, скажем, | в качестве разделителя.

1 Ответ

0 голосов
/ 09 сентября 2010

Просто используйте обычный запрос GET.Если вы этого не сделаете, то вам не только нужно писать и отлаживать новый код синтаксического анализа, но вы также обходите многие функциональные возможности форм, предоставляемые браузерами, веб-серверами, веб-сканерами, клиентскими сценариями и сервером.фреймворки со стороны.

Однако, если вы просто пытаетесь сделать свои URL более привлекательными, используйте mod_rewrite или одного из двоюродных братьев , чтобы сделать что-то вроде этого:

/search/23/Venice?q=road+map -> /search?category=23&city=Venice&q=road+map
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...