Я знаю, что вы не хотите публиковать форму с именем пользователя и паролем, где кто-либо может использовать историю для просмотра или ситуации, когда повторные действия могут быть нежелательными (обновление страницы = добавление элемента в корзину может быть нежелательным). Поэтому у меня есть понимание, когда я могу использовать один над другим. Но я всегда мог перенаправить URL-адрес сервера после GET, чтобы обойти проблему с корзиной, и, возможно, большинство моих форм отлично справятся с GET.Почему я должен использовать POST-данные, а не GET?
Почему я должен использовать POST через GET? Я не понимаю преимуществ одного над другим. Я замечаю, что POST не добавляет данные в историю/URL и предупреждает вас об обновлении страницы, но это единственные две отличия, которые я знаю. Почему, как разработчик, я могу использовать один над другим?
Добавление предметов в корзину с помощью GET - плохая идея, так как запросы GET никогда не должны иметь побочных эффектов на сервере. Существуют программы предварительной выборки, такие как FasterFox и Google Web Accelerator, которые предварительно загружают контент из ссылок на странице, загружая страницы заранее. Если вам не повезло, они могут добавить элементы в корзину, когда ваш пользователь просто читает страницу продукта. – Martin
@Martin. Это имеет смысл. А как насчет аякса? Есть ли разница, если я использую GET или POST? Ничто не может предсказать данные, которые я отправляю, если мне нужно выполнить несколько функций javascript, сделайте запрос. – 2010-05-31 23:20:24
Prefetchers не должны быть проблемой для запросов AJAX, но я все же считаю, что неплохо придерживаться правильной семантики: GET reqs не должен иметь побочных эффектов на сервере (т. Е. Не создавать, удалять и не модифицировать что-либо). Если вы просто извлекаете данные (например, для окна автозаполнения), а представленные данные достаточно малы, чтобы соответствовать URL-адресу, GET должен работать нормально. В отличие от ответов POST, ответы GET можно даже кэшировать, что улучшает воспринимаемую производительность приложения. – Martin