POST или GET?

Многие спрашивают в какой момент какой из методов использовать, есть ли какие то правила? Четких правил нет, наверное поэтому начинающие программисты часто используют только одни из методов авбсолютно ВЕЗДЕ, это совсем не гуд. Есть несколько «Правил хорошего тона» которых следут придерживаться, это позволит избежать кучи мелких неприятностей и выглядеть более профессионально. Вот хочу поразмышлять на эту тему…

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

При выборе метода следует учитывать три фактора:

  1. метод GET ограничивает объем передаваемой информации;
  2. метод GET открыто пересылает введенную информацию в обрабатыва ющий сценарий, что может неблагоприятно сказаться на безопасности. Например, каждый человек, которому виден монитор вашего компьюте ра, может заметить введенный в форму пароль;
  3. страницу, сгенерированную формой с помощью метода GET, разрешается помечать закладкой, а сгенерированную методом POST нет.

Правила хорошего тона использования методов POST и GET:

1. Все данные которые участвуют в формировании страницы лучше передавать методом GET.

Например:

- перелистывание страниц

- поиск

- запрос по ID записи/категории/новости и т.п.

Почему так? Потому что это как минмум удобнее, допустим нужна ссылка на текущую страницу, или нужно добавить её в закладки. К тому же если тут использовать метод POST но при нажатии кнопки НАЗАД браузер повторно предложит отправить данные, в итоге на прошлую страницу вы не попадете.

2. Все данные которые сохраняются в Базу Данных(или файл) лучше передавать методом POST и после записи данных, делать редирект на «success» страницу, где уведомлять к примеру что данные сохранены. Редирект тут нужен для того, чтобы избежать повторной отправки данных при нажатии кнопки НАЗАД.

Многим не нравиться что при использовании метода GET «захломляется» адресная строка, но на то она и нужна чтобы её «захломлять» ;)

Комментировать