Поиск через POST

ABC - цены на Sony PlayStation: playstation 3 slim. Ноутбуки для дома и работы. . Компания dsbw tours предлагает зимний отдых в Финландии

Концепция "Friendly URLs " в последнее время полностью извратила метод GET протокола HTTP. Никаких тебе index.php?path='blog'&record_id=100500 - все разделено слешами, даже этот пост, сайт без mod_rewrite кажется просто неполноценным. Однако остались еще места, где GET незаменим. Одно из таких мест - форма поиска.

У многих программистов (как правило, начинающих) в голове почему-то строится странное соответствие: формы = POST. Понятное дело, форма авторизации - постом, ибо показывать кому-то логин-пароль в урле - брррр, контактная форма - тоже пост и т.п.

Но это потому что POST:

Применяется для передачи пользовательских данных заданному ресурсу. (c) Википедия (да-да, надо было со спецификации, но влом)

Т.е. POST создан для того, чтобы отправлять данные на сайт. А вот GET, чтобы получать данные с сайта:

Используется для запроса содержимого указанного ресурса. С помощью метода GET можно также начать какой-либо процесс. В этом случае в тело ответного сообщения следует включить информацию о ходе выполнения процесса. (c) Википедия

Поиск - это получение данных (посмотрите тру поисковики - они это знают :) ), так что делать его постом - просто не по стандартам.

Хотя на деле все и так ложат болт на эти стандарты абы работало и я бы не стал писать об этом. И фигня даже то, что человек никогда не сможет дать товарищу ссылку на результаты поиска (потому что постом урл не изменится) - мало ли такого чтоли. Фиг с ним.

Жопа начинается, когда появляется постраничный вывод результатов поиска.

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

Второй вариант костыля в том, чтобы помнить в сессии параметры поиска, а номер страницы уже добавлять в урл. Тут появляется жопа #2. Если пользователь открыл страницу в новой вкладке и на ней зашел на вторую страницу поиска (т.е. сессия та же, но открыты 2 страницы поиска), то одна из страниц будет перекрывать вторую. На это тоже ставится костыль и т.д.

В целом, поиск постом - это не по стандартом и провоцирует множество костылей. Однако есть одна ситуация, когда без этого просто никак: а именно когда длина url получается больше допустимой (в ie 2048 символов, в остальных побольше).

Ссылки пластика носа предложения. Отёк после пластика носа у детей.

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

В Вашем браузере отключена поддержка JavaScript! Для корректной работы Вам необходимо включить поддержку JavaScript и обновить данную страницу.

Информеры с тИЦ и PR: получить код для сайта
Медикаментозное прерывание 3600 р - прерывание беременности. Книги о Беременности.