Подтвердить что ты не робот

GET vs. POST ajax-запросы: когда и как использовать?

Каковы сильные стороны GET over POST и наоборот при создании запроса ajax? Как узнать, что я должен использовать в любой момент? Это решение, ориентированное на безопасность?

Кроме того, в чем разница в том, как они действительно отправляются?

4b9b3361

Ответ 1

Запросы POST - это запросы, которые вы не хотите случайно делать. Запросы GET - это запросы, в которых вы работаете, когда пользователь указывает браузеру через URL-адрес.

Запросы GET можно повторить достаточно просто, поскольку их данные основаны на самом URL-адресе.

Вам следует подумать о запросах AJAX, как вы думаете о регулярных запросах формы (и их GET и POST)

Ответ 2

GET следует использовать для операций idempotent, то есть операций, которые можно безопасно повторять несколько раз, не меняя ничего. Браузеры будут кэшировать GET-запросы (для обычных и AJAX-запросов)

POST файлы обычно должны использоваться для неидентичных операций, например, для сохранения чего-либо. Хотя вы можете использовать их для других операций, если хотите.

Данные для GET отправляются по строке запроса URL. Данные для POST отправляются отдельно. Некоторые браузеры имеют максимальную длину URL (я думаю, Internet Explorer имеет 2048 символов), и если строка запроса будет слишком длинной, вы получите сообщение об ошибке.

Ответ 3

Вы должны использовать запросы GET и POST в вызовах AJAX так же, как вы будете использовать запросы GET и POST в обычных вызовах. Основное правило:

Будет ли запрос изменять что-либо в вашей модели?

  • ДА: Запрос будет изменять (добавлять/обновлять/удалять) данные из хранилища данных,    или каким-либо другим способом изменить состояние сервера (вызывают создание    файл, например). Использовать POST.
  • НЕТ: Запрос не повлияет на состояние чего-либо (базы данных, файловой системы,    сеансы,...) на сервере, а просто извлекать информацию. Использовать GET.

Ответ 4

Yahoo! Почтовая команда обнаружила, что при использовании XMLHttpRequest POST реализуется в браузерах как двухэтапный процесс: сначала отправляя заголовки, а затем отправляя данные. Поэтому лучше всего использовать GET, который принимает только один пакет TCP для отправки (если у вас много куки). Максимальная длина URL-адреса в IE составляет 2K, поэтому, если вы отправляете более 2K данных, вы не сможете использовать GET.

http://developer.yahoo.com/performance/rules.html#ajax_get