Как я должен выбрать между, ДОБИРАЮТСЯ и методы POST в HTML-формах?

Можно также аннулировать высоту строки родителя:

#wrapper {
  line-height: 0;
}

Все исправления: http://jsfiddle.net/FaPFv/

21
задан Mark Biek 22 September 2008 в 14:09
поделиться

15 ответов

Для выбора между ними, я использую это простое правило:

ДОБИРАЮТСЯ для чтений. (чтение данных и отображение его)

POST для чего-либо, что пишет (т.е. обновление таблицы базы данных, удаление записи, и т.д.)

другое соображение, это ДОБИРАЕТСЯ, подвергается максимальной длине URI и конечно не может обработать загрузки файла.

Эта страница имеет хорошую сводку .

38
ответ дан 29 November 2019 в 06:21
поделиться

Оба набора значений легко контролируются хакерами или другим материалом, но ДОБЕРИТЕСЬ, менее безопасно в способе, которым его очень видимым, что значения (прямо в addressbar).

Использование SSL для безопасности, если это необходимо.

А хороший совет: Всегда используйте POST для форм, используйте querystrings (? value=products), когда Вы не отправляете вещи, но пытаетесь ПОЛУЧИТЬ определенную страницу, как страница продукта. Следовательно POST имен и ДОБИРАЕТСЯ:)

-7
ответ дан 29 November 2019 в 06:21
поделиться

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

-3
ответ дан 29 November 2019 в 06:21
поделиться

Один глюк, который я заметил на днях и это было реальное "ПОНЯТНОЕ ДЕЛО!" момент для меня.

у Нас есть сторонняя поисковая система на нашем сайте, и они используют ПОЛУЧИТЬ метод для регистрации поискового запроса на их код. Кроме того, у меня был некоторый код, который искал возможные атаки с использованием кода на SQL в querystring. Мой код завинчивал все, потому что он искал слова как "ДОЛЖНОСТНОЕ ЛИЦО", "ОБНОВЛЕНИЕ", "УДАЛИТЕ", и т.д. Ну, оказывается, что пользователь искал "ИСПОЛНИТЕЛЬНЫЙ MBA" и мой код, найденный "ДОЛЖНОСТНЫМ ЛИЦОМ" в "РУКОВОДИТЕЛЕ", и запретил их IP.

Верят мне, я не хвастаю своим кодом, просто говоря, что выбор между ДОБИРАЕТСЯ, и POST имеет полудалеко идущие последствия кроме, "делают я хочу свои пароли, обнаруживающиеся в querystring".

-2
ответ дан 29 November 2019 в 06:21
поделиться

Это зависит от типа данных и размера данных, которые Вы хотите передать. С ДОБИРАЮТСЯ, можно передать максимум 255 символов к странице действия. С методом POST у Вас нет таких ограничений. POST дает больше конфиденциальности данным, поскольку это не отображено нигде. Что-либо, что Вы отправляете использованию ПОЛУЧИТЬ метода, отображено в строке поиска broser.

Многие поисковые сайты обычно используют ПОЛУЧИТЬ метод, поскольку это дает Вам средство для установки закладки поисковых запросов. Надежда это помогает.

0
ответ дан 29 November 2019 в 06:21
поделиться

Поисковая система Google является примером ПОЛУЧИТЬ формы, потому что необходимо быть в состоянии искать дважды подряд и не влиять на результаты путем выполнения этого. Это также имеет хороший эффект, который можно связать со страницей с результатами поиска, потому что это - нормальное, ПОЛУЧАЮТ запрос, как любой другой адрес.

, Как сказано ранее, используйте POST для удаления или обновления данных, но я хотел бы добавить, что Вы сразу должны перенаправление Ваш пользователь к странице GET.

http://en.wikipedia.org/wiki/Post/Redirect/Get

0
ответ дан 29 November 2019 в 06:21
поделиться

get's ответа M David мой голос.

я просто хотел добавить один объект, о котором я слышал, возможно, это была городская легенда??

у Кого-то был сайт со ссылками, которые были только, чтобы внутреннее пользование удалило файлы на их веб-сайте. Все было хорошо, пока webspider (я думаю, что это был Google) так или иначе не нашел эти ссылки и весело следовал за каждым порождением всех файлов на его сайте быть удаленным. Используемые ссылки ДОБИРАЮТСЯ и должны были использовать POST, поскольку пауки не переходят по ссылкам POST.

0
ответ дан 29 November 2019 в 06:21
поделиться

ДОБЕРИТЕСЬ могло бы быть легче отладить, потому что можно контролировать все значения sended в панели адреса без любых дополнительных инструментов. Но существует ограничение максимум длина так с несколькими переменными, Вы можете избыток это.

POST не намного более безопасен в эти дни потому что с бесплатными инструментами как Скрипач & co. можно захватить очень легкие значения. Но нет никакой реальной имитации длины или суммы значений, можно отправить этот путь, и URL выглядят более удобными для пользователя.

, Таким образом, мое небывалое предложение состояло бы в том, чтобы использовать POST вместо, ДОБИРАЮТСЯ.

0
ответ дан 29 November 2019 в 06:21
поделиться

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

мудрый безопасностью, оборотная сторона использования ДОБИРАЕТСЯ, то, что все отправленные данные будут в URL, и поэтому сохранены локально на клиенте в истории браузера.

1
ответ дан 29 November 2019 в 06:21
поделиться

ПОЛУЧИТЕ данные передач в URL, POST передает те же данные в содержании HTTP, оба - точно то же с точки зрения безопасности (то есть, абсолютно небезопасный, если Вы не делаете что-то об этом сами, как использование HTTPS).

ДОБИРАЮТСЯ, ограничен максимальной длиной URL, поддерживаемой браузером и веб-сервером, таким образом, это может только использоваться в кратких формах.

С точки зрения стандарта HTTP ДОБИРАЮТСЯ, запросы не должны изменять сайт, и браузеры / пауки, намного более вероятно, сделают, ПОЛУЧАЮТ запросы самостоятельно (без пользователя, на самом деле нажимающего что-то) тогда запросы POST.

2
ответ дан 29 November 2019 в 06:21
поделиться
3
ответ дан 29 November 2019 в 06:21
поделиться

В дополнение к прекрасным ответам от, например, Micke, я хочу указать на важное различие в том, как интерфейсы браузера обрабатывают страницы, которые требуют с, ДОБИРАЮТСЯ по сравнению с POST.

при перезагрузке ПОЛУЧЕНИЯ - требуемая страница браузер просто выберет URL снова (с сервера или с кэша), Однако при перезагрузке POST браузер покажет немного запутывающее всплывающее окно предупреждения о перерегистрации данных, которые пользователь может тогда отменить (ведущий к еще более запутывающей странице "с истекшим сроком"). То же самое, если Вы используете назад или история для возврата к странице, которая является результатом POST.

Это, конечно, основано на другой семантике: ПОЛУЧАТЬ-ЗАПРОСЫ, как предполагается, являются идемпотентом - т.е., можно несколько раз делать это, ничего не изменяя. СООБЩЕНИЯ, с другой стороны, для действий с побочными эффектами, как регистрация для чего-то, bying что-то, отправляя комментарий к форуму. Обычно пользователь не ожидает повторять это действие при перезагрузке, таким образом, предупреждение будет разумно. Однако постарайтесь не использовать POST, если бы действие безопасно повторяемо (как поиск), так как предупреждение не необходимо и просто было бы запутывающим пользователя.

точка А относительно безопасности: Если у Вас будет поле пароля в ПОЛУЧАТЬ-ФОРМЕ, то пароль будет замаскирован для любопытных глаз при вводе его, однако, это будет явно видимо в строке поиска, когда Вы совершаете нападки, отправляют! Но кроме этого, нет никакой реальной безопасности ни в одном, ДОБИРАЮТСЯ и POST, так используйте SSL, если это - беспокойство.

4
ответ дан 29 November 2019 в 06:21
поделиться

ДОБЕРИТЕСЬ не должен иметь побочных эффектов: http://www.w3.org/DesignIssues/Axioms.html#state

формы POST должны использоваться, когда представление имеет побочные эффекты.

Никакой метод не имеет реальной импликации на безопасности, используйте SSL, если Вы обеспокоены безопасностью.

12
ответ дан 29 November 2019 в 06:21
поделиться

Оба ДОБИРАЮТСЯ, и POST имеют их место. Вы не должны полагаться ни на одного из них для безопасности.

ДОБИРАЮТСЯ, запросы

  • легко реализуемые
  • , легко bookmarkable
  • , подвергаются ограничению длины URI
  • , может показать параметры в журналах доступа

, запросы POST

  • позволяют файл, загружающий
  • , позволяет большие данные
  • , не показывает параметры на адресной строке браузера

, Вы хотите, чтобы результат представления формы был bookmarkable (думайте поиск Google)? Используйте , ДОБИРАЮТСЯ .

Хотели бы Вы результат представления формы быть реализуемый ? Используйте , ДОБИРАЮТСЯ .

Ваши запросы не идемпотент (безопасно повторяемый)? Используйте POST и затем всегда перенаправление к странице, которая подходит для получения через HTTP, ДОБИРАЮТСЯ .

Вам нужно загрузки файла ? Используйте POST.

24
ответ дан 29 November 2019 в 06:21
поделиться

Используйте ДОБИРАЮТСЯ, если Вы хотите, чтобы результат был bookmarkable.

0
ответ дан 29 November 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: