Когда вы используете POST и когда вы используете GET? - PullRequest
315 голосов
/ 05 сентября 2008

Из того, что я могу собрать, есть три категории:

  1. Никогда не используйте GET и используйте POST
  2. Никогда не используйте POST и используйте GET
  3. Неважно, какой вы используете.

Правильно ли я предположил эти три случая? Если да, то каковы примеры из каждого случая?

Ответы [ 27 ]

1 голос
/ 05 сентября 2008

Первоначально предполагалось, что GET использовался для возврата данных, а POST должен был быть чем угодно. Эмпирическое правило, которое я использую, заключается в том, что если я отправляю что-либо обратно на сервер, я использую POST. Если я просто вызываю URL, чтобы получить данные, я использую GET.

1 голос
/ 13 марта 2016

С w3schools.com :

Что такое HTTP?

Протокол передачи гипертекста (HTTP) предназначен для включения связь между клиентами и серверами.

HTTP работает как протокол запрос-ответ между клиентом и сервером.

Веб-браузер может быть клиентом и приложением на компьютере, которое хостом веб-сайта может быть сервер.

Пример: клиент (браузер) отправляет HTTP-запрос на сервер; затем сервер возвращает ответ клиенту. Ответ содержит информацию о статусе запроса и может также содержать запрашиваемый контент.

Два метода HTTP-запроса: GET и POST

Два обычно используемых метода для запроса-ответа между клиентом и Сервер: GET и POST.

GET - запрашивает данные из указанного ресурса. POST - отправляет данные в обрабатываться до указанного ресурса

Здесь мы различаем основные различия:

enter image description here

0 голосов
/ 15 февраля 2010

Как ответили другие, есть ограничение на размер URL в get, и файлы могут быть отправлены только с постом.

Я хотел бы добавить, что один может добавлять вещи в базу данных с помощью get и выполнять действия с публикацией. Когда сценарий получает сообщение или получение, он может делать все, что хочет автор. Я полагаю, что непонимание проистекает из формулировки, которую выбрала книга, или того, как вы ее читаете.

Автор сценария должен использовать посты для изменения базы данных и использовать get только для поиска информации.

Языки сценариев предоставили множество средств для доступа к запросу. Например, PHP позволяет использовать $_REQUEST для извлечения сообщения или получения. Следует избегать этого в пользу более конкретных $_GET или $_POST.

В веб-программировании гораздо больше возможностей для интерпретации. Есть то, что должен и что может сделать, но какой из них лучше, часто обсуждается. К счастью, в этом случае нет никакой двусмысленности. Вы должны использовать сообщения для изменения данных, а должны использовать get для получения информации.

0 голосов
/ 15 февраля 2010

Что ж, главное, что вы отправите через GET, будет показано через URL. Во-вторых, как говорит Ceejayoz, существует ограничение на количество символов для URL.

0 голосов
/ 15 февраля 2010

Другое отличие состоит в том, что POST обычно требует две HTTP-операции, тогда как GET требует только одну.

Редактировать: я должен уточнить - для общих шаблонов программирования. Как правило, реакция на POST с прямой веб-страницей в формате HTML представляет собой сомнительный дизайн по ряду причин, одной из которых является раздражающее «вы должны повторно отправить эту форму, вы хотите это сделать?» при нажатии на кнопку возврата.

0 голосов
/ 15 февраля 2010

Данные HTTP Post не имеют определенного ограничения на количество данных, поскольку разные браузеры имеют разные ограничения для GET. RFC 2068 заявляет:

Серверы должны быть осторожны в зависимости от длины URI выше 255 байты, потому что какой-то старый клиент или реализации прокси могут не правильно поддерживать эти длины

В частности, вы должны выбрать правильные конструкции HTTP для того, для чего они используются. HTTP GET не должен иметь побочных эффектов и может быть безопасно обновлен и сохранен прокси HTTP и т. Д.

HTTP POST используются, когда вы хотите отправить данные по URL-адресу.

Типичным примером использования HTTP GET является поиск, то есть поиск? Query = my + query Типичным примером использования HTTP POST является отправка отзыва в онлайн-форму.

0 голосов
/ 05 сентября 2008

Gorgapor, mod_rewrite все еще часто использует GET. Он просто позволяет перевести более удобный URL в URL со строкой запроса GET.

...