понедельник, 11 января 2010 г.

95% разработчиков не умеют использовать POST

Она проклинает тебя

Вы принимаете данные формы методом POST и в ответе отдаете страницу с результатом выполнения запроса. Поздравляю, вы в очередной раз написали молитвенный барабан для проклинания себя.

Каждый посетитель, который, немного погуляв по сайту, пару раз нажмёт кнопку Back (а таких, согласно Якобу Нильсену, будет немало; а некоторые, больные интернет-зависимостью, — вроде меня — еще любят кнопку Refresh: а вдруг за пару минут появилось чего новенького?) — каждый такой посетитель внезапно получит в морду кирпичом с надписью на нем вроде: «Вы попали на эту страницу нажатием простой с виду кнопки, которая вызывает очень много чёрной магии. Вы намереваетесь и дальше испытывать терпение могущественного джинна?» (А больные интернет-зависимостью — вроде меня — после второго кирпича могут очень сильно расстроиться.)

Надеюсь, моя мысль ясна. Итак, сделайте это правильно: в ответ на POST надо отдать перенаправление со статусом 303 See Other на страницу с результатами выполнения запроса.

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

«А как же поиск?» — спросят меня 95% разработчиков. «Поиск, — отвечу я, — делается методом GET». И не трогайте меня, я при исполнении служебных обязанностей.

При написании этой статьи ни один опенсорс не пострадал.

0 comments:

Отправить комментарий