Метод POST vs GET для формы поиска в CMS - PullRequest
12 голосов
/ 26 сентября 2011

Я немного застрял в одной вещи.Просто не могу решить, использовать ли метод POST или GET в моей форме поиска.

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

Если говорить более конкретно,Функция поиска предназначена для использования вместе со списком пользователей, так что может быть какой-то конкретный пользователь для поиска.Моя идея состояла в том, чтобы использовать метод POST, где форма будет перенаправлена ​​на ту же страницу, чтобы я мог получить список пользователей, отфильтрованных по строке поиска.Кроме того, было выполнено разбиение на страницы, поэтому я добавил бы строку поиска в и и для каждой ссылки нумерации страниц (следующая страница, предыдущая страница, первая страница и ссылка на последнюю страницу), чтобы строка поиска не была потеряна позднее (в течение любого сеанса, следующего послепоиск, такой как разбиение на страницы результатов поиска и т. д.).

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

Какой из них вы бы предпочли для поиска в CMS и т.п.системы?

Спасибо всем!

Ответы [ 2 ]

49 голосов
/ 26 сентября 2011

Вы получаете данные, поэтому используйте GET.POST создаст проблемы с обновлением и возвращением.

Не зацикливайтесь на красоте ваших URI, это инструмент, а не произведение искусства.

3 голосов
/ 28 ноября 2011

Может быть, я бы (в основном) всегда выбирал post over get, он более аккуратный и освежающий, а проблемы с методом post - это дело прошлого в любом крупном браузере, они просто спрашивают вас, хотите ли вы переслать данные не так ли?

Исключением MAJOR будет закладка динамической веб-страницы (например, movieweb.com/movies.php?movie=the_three_mosqueteers), но все же, если это не так, я думаю, что лучше использовать POST.

...