Является ли сокрытие параметров GET путем перезаписи его в POST и перенаправления хорошей идеей? - PullRequest
2 голосов
/ 24 февраля 2012

Я хочу скрыть параметры из URL. Я использую uuids вместо ids , и когда я передаю его в URL, он выглядит немного длинным и уродливым. Первой мыслью было использовать маленькие формы со скрытыми входами вместо якорей, но будет неудобно заменять каждый якорь формой, а также не будет работать, когда якорь уже помещен в другую форму.

Поэтому второй мыслью было переписать $_GET в $_POST / $_SESSION, а затем снова перенаправить в этот скрипт. Все переменные будут доступны, а URL будет чистым и коротким.

Но что с производительностью этого решения? Это хорошая идея сделать это таким образом?

Любая помощь или другие идеи будут оценены. Заранее спасибо.

PS.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Не меняйте GET на POST или наоборот для красивости .Оба метода HTTP обрабатываются очень по-разному во многих контекстах, и вы не хотите вызывать подобные побочные эффекты.

POST-запросы не могут содержаться в URL-адресе, т. Е. Пытаться отправить кому-то ссылкусайт, который требует POST-запроса.POST-запросы связаны с историей браузера, т. Е. Попробуйте нажать кнопку «Назад», чтобы вернуться на страницу, отправленную с помощью POST.POST-запросы не индексируются поисковыми системами.

POST-запросы должны использоваться для изменения данных на сервере.Не используйте их для всех обычных запросов.

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

0 голосов
/ 24 февраля 2012

вы, конечно, потеряете ВСЕ преимущества поисковой системы по всей ширине вашего сайта, если вы повсеместно примете эту стратегию.вы должны действительно использовать $_POST только когда вы отправляете данные, которые должны быть сохранены на носитель (или куда вы отправляете защищенные данные https и т. д.), в противном случае рекомендуется $_GET для 'запрошенного'' данные.Итак, вам нужно будет определить вариант использования здесь и следовать этому шаблону.

Я понимаю, что вы говорите о "некрасивых" URL, но советую вам быть осторожным при поиске корректирующих действий в этом отношении.Одним из способов, конечно, было бы сделать urlrewrite для входящих параметров, но для этого потребовался бы поиск в базе данных и т. Д. (Чтобы получить сопоставленную красивую строку url), поэтому это может быть дорогостоящим.

Я вернусь с любым другиммысли, как они возникают.

...