в чем разница между get и post запросами
В чем разница между get и post запросами
HTTP определяет множество методов запроса, которые указывают, какое желаемое действие выполнится для данного ресурса. Несмотря на то, что их названия могут быть существительными, эти методы запроса иногда называются HTTP глаголами.
CRUD — (англ. create read update delete — «Создание чтение обновление удаление») сокращённое именование 4 базовых функций при работе с персистентными хранилищами данных — создание, чтение, редактирование и удаление.
Операция | Операция в HTTP |
Создание (Create) | POST |
Чтение (Read) | GET |
Редактирование (Update) | PUT или PATCH |
Удаление (Delete) | DELETE |
Каждый реализует свою семантику, но каждая группа команд разделяет общие свойства: так, методы могут быть безопасными (не изменяют состояния сервера – GET, HEAD, OPTIONS), идемпотентными (возвращают один и тот же результат на идентичный запрос – GET, HEAD, PUT, DELETE) или кэшируемыми.
Методы HTTP запроса:
POST запрос.
Применяется для передачи пользовательских данных заданному ресурсу. Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер. Сообщение ответа сервера на выполнение метода POST не кэшируется.
Отличие GET от POST
GET отсылает запрос на получение данных, POST отправляет данные. GET. Добавляется в закладки. Кэшируется. История остается в закладках браузера. Есть ограничения по по символам, так как данные передаются в URL, то должен ограничиваться в 2048 символах (мах строка символов в URL). По типу данных допускается использование только символов ASCII. Менее безопасный, так как передоваемые в URL данные, видны пользователю. Данные в URL доступны всем.
Разница между PUT и POST
Разница между PUT и POST состоит в том, что PUT является идемпотентным: повторное его применение дает тот же результат, что и при первом применении (то есть у метода нет побочных эффектов), тогда как повторный вызов одного и того же метода POST может иметь такие эффекты, как например, оформление одного и того же заказа несколько раз.
Все безопасные методы являются также идемпотентными, как и некоторые другие, но при этом небезопасные, такие как PUT или DELETE.
Структура HTTP запроса:
-строку запроса, в которой указывается версия HTTP протокола и HTTP метод запроса;
-ноль или несколько заголовков, разделенных между собой символом конца строки, в которых передаются другие HTTP праметры для успешного HTTP соединения;
-пустую строку, чтобы отделить служебную информацию от тела сообщения;
-необязательное тело сообщения.
Зачем нужны Header?
Для того чтобы компьютер мог понимать с каким ресурсом работать:
Заголовок-сущность Content-Type используется для того, чтобы определить MIME тип ресурса.
MIME тип:
Content-Type (text/html; charset=utf-8)
Клиент может установить Accept в application/json, если он запрашивает ответ в JSON.
И наоборот, когда отправляются данные, установленный Content-Type в application/xml говорит клиенту, что данные были отправлены в XML форме.
Блог Vaden Pro
GET или POST? – вот в чем вопрос!
В последнее время в сложившейся практике разработки сайтов наибольшую популярность получили два типа HTTP запросов: GET и POST. Казалось бы ничего сложного в этих двух понятиях нет, но начинающие и неопытные веб-разработчики очень часто допускают непростительные ошибки при выборе определенного метода. Главным образом это происходит по той причине, что эти 2 разные пути могут привести к одному и тому же результату. Ценой неправильного выбора типа запроса может быть угроза безопасности ресурса или информационная перегрузка сервера.
Итак, чтобы не допускать принятие неправильных решений, следует подробнее разобрать суть обоих методов. Это позволит докопаться до истины и вывести веб-разработчика на верный путь.
Очень действенный метод восприятия информации – это ассоциативное мышление, поэтому предлагаю придумать для каждого понятия ассоциацию и связывать функциональные возможности с этим предметом. Обратимся к названиям методов, а точнее к их переводу на русский язык. К примеру, GET переводится, как получать, другими словами получить запрос. А вот POST можно трактовать, пересылка письма по почте. Для программиста это значит, что такой метод будет связан с передачей информации на сервер. Это тот необходимый минимум, который научит новичка не путаться в этих понятиях. Однако, если простые лендинги с формой отправки данных – это для Вас не предел, тогда подойдем в плотную к этому вопросу.
Безопасные и небезопасные HTTP запросы
Изучив спецификацию HTTP 1.1, можно констатировать тот факт, что классификация разновидностей методов запросов насчитывает два типа: безопасный и небезопасный запрос.
Теперь стоит разъяснить суть каждого из методов. Безопасными называются те запросы, которые не имеют никакого влияния на ресурс, они просто запрашивают и помогают считывать информацию. Примером такого запроса является отображение картинки – через ее адрес идет запрос на сервер в указанную директиву, где должен находится файл с картинкой. Такой тип запроса распространяется на методы HEAD и GET.
На заметку
Безопасный метод – это еще не гарантия отсутствия проблем. Ущерб может нанести зацикливание определенного типа запроса, даже если он и безопасный.
Теперь обратимся к понятию небезопасного запроса. Такой метод предусматривает внесение изменений определенным данным на сайте. Наиболее вероятные проблемы возникают в том случае, когда запрос осуществляется повторно или без надобности. В качестве примера следует отметить такие процессы, как онлайн-регистрация, пересылание сообщения или веб-платежи. Пот такой тип запроса относят POST, PUT и DELETE методы.
Идемпотентные методы
Это сложное для восприятия и произношения понятие означает способность некоторых из методов предоставлять одни и те же данные при многочисленных запросах. Та ситуация, когда информация была обновлена, во внимание не берется. Изъясняясь более понятно, это тот случай, когда при запросе файла по одному и тому же адресу будет выводиться постоянно одна и та же информация (например, картинка). Такая способность присуща GET, PUT, DELETE методам.
На этом будем завершать анализ методов. Теперь вы можете убедиться в том, что не совсем POST похож на GET. Поэтому при выборе метода в первую очередь следует проанализировать поставленные цели для ресурса, а затем, исходя из принятых решений, делать выбор. Да, стоит отметить, что по умолчанию работает метод GET.
Для удобности привожу шпаргалку, которая в большинстве случаев направит разработчика на верный путь и позволит принять верное решение:
Хоть и шпаргалка не сможет помочь в специфических и сложных ситуациях, но для решения стандартных задач будет неоценимым помощником.
Разница между GET и POST методом в PHP
Основное различие между методами GET и POST в PHP заключается в том, что метод GET отправляет информацию путем добавления их к запросу страницы, а метод POST отправляет информацию через заголовок HTTP.
PHP — это серверный язык сценариев, разработанный для веб-разработки. Методы GET и POST — это два способа отправки клиентом компьютера информации на веб-сервер. Эти методы помогают получать информацию от пользователей с помощью форм.
Содержание
Что такое метод GET в PHP?
Динамический веб-сайт имеет возможность хранить, обновлять, извлекать и удалять данные из базы данных. Форма — это документ, который содержит поля для заполнения данных пользователем. Эти данные формы будут храниться в базе данных.
PHP
Информация о форме с помощью метода GET видна всем. Другими словами, все имена и значения переменных видны в URL. С имвол ‘?’ разделяет URL страницы и информацию о форме. Количество информации для отправки с помощью GET ограничено 1500 символами.
Обычно не рекомендуется использовать GET для отправки конфиденциальной информации, такой как пароли. В некоторых ситуациях этот метод помогает добавить страницу в закладки.
Что такое метод POST в PHP?
Информация о форме с помощью метода POST доступна не всем. Другими словами, все имена и значения переменных прикрепляются к телу HTTP-запроса. Информация о форме не отображается в URL. Следовательно, это помогает безопасно отправлять информацию. Также нет конкретного ограничения на объем данных для отправки. В дополнение к этому, метод POST предоставляет такие функции, как поддержка двоичного ввода из нескольких частей при загрузке файлов на сервер.
В чем разница между GET и POST методом в PHP?
GET и POST метод в PHP | |
GET — это метод, который отправляет информацию путем добавления её к запросу страницы | POST — это метод, который передает информацию через HTTP-заголовок |
URL | |
Информация о форме видна в URL | Информация о форме не отображается в URL |
Количество информации | |
Для отправки доступно ограниченное количество информации (менее 1500 символов) | Для отправки доступно неограниченное количество информации |
Использование | |
Используется для отправки неконфиденциальных данных | Используется для отправки конфиденциальных данных (пароли), двоичных данных (текстовые документы, изображения) и загрузки файлов |
Безопасность | |
Не очень безопасный метод | Более безопасный метод |
Создание закладки для страницы | |
Возможно добавить страницу в закладки | Невозможно добавить страницу в закладки |
Заключение — метод GET против POST метода в PHP
GET и POST — это два метода обработки форм в PHP. Вообще говоря, разработчики чаще предпочитают метод POST для отправки данных, чем метод GET. Основное различие между методами GET и POST в PHP заключается в том, что метод GET отправляет информацию путем добавления её к запросу страницы, а метод POST отправляет информацию через заголовок HTTP.
Русские Блоги
Разница между Http Get и Post
Наиболее интуитивно понятное отличие состоит в том, что GET включает параметры в URL-адрес, а POST передает параметры через тело запроса.
Возможно, вы сами написали бесчисленное количество запросов GET и POST или видели различия между ними, обобщенные на многих авторитетных веб-сайтах. Вы точно знаете, когда и что использовать.
Когда вам задают этот вопрос в интервью, ваше сердце полон уверенности и радости.
Вы легко дали «стандартный ответ»:
GET безвреден, когда браузер откатывается, в то время как POST отправляет запрос снова.
URL-адрес, сгенерированный GET, можно добавить в закладки, но не POST.
Запросы GET могут кодироваться только по URL-адресу, тогда как POST поддерживает несколько методов кодирования.
Параметры запроса GET будут полностью сохранены в истории браузера, а параметры POST не сохранятся.
Параметры, передаваемые в URL-адресе GET-запроса, ограничены по длине, но не для POST.
Для типа данных параметра GET принимает только символы ASCII, тогда как POST не имеет ограничений.
GET менее безопасен, чем POST, потому что параметры напрямую отображаются в URL-адресе, поэтому его нельзя использовать для передачи конфиденциальной информации.
Параметры GET передаются через URL-адрес, а POST помещается в тело запроса.
(Ответ на этот стандарт взят из w3schools)
«К сожалению, это не тот ответ, который нам нужен!»
Вы поверите, если я скажу вам, что GET и POST по сути одно и то же? К
Давайте снимем пальто с GET и POST и до встречи, откровенно говоря!
Что такое GET и POST? В протоколе HTTP есть два метода отправки запросов.
Итак, чем отличается «стандартный ответ»?
Однако мы видим только требования HTTP для канала доставки параметров GET и POST (url или тело запроса). Откуда в «стандартном ответе» ограничение на размер параметра?
Хорошо, теперь вы знаете, что GET и POST по сути являются TCP-ссылками, и никакой разницы между ними нет. Однако из-за правил HTTP и ограничений браузера / сервера они показывают некоторые различия в процессе подачи заявки. К
Как вы думаете, это конец статьи?
Есть еще одно важное различие между GET и POST. Проще говоря:
GET генерирует один пакет данных TCP; POST генерирует два пакета данных TCP.
Для запросов GET браузер отправит HTTP-заголовок и данные вместе, а сервер ответит 200 (возвращаемые данные);
Для POST браузер сначала отправляет заголовок, сервер отвечает 100 continue, браузер затем отправляет данные, а сервер отвечает 200 ok (возвращаемые данные).
Поскольку POST требует двух шагов и занимает немного больше времени, кажется, что GET более эффективен, чем POST. Поэтому команда Yahoo рекомендует заменить POST на GET для оптимизации производительности веб-сайта. Но это яма! Будьте осторожны, прыгая внутрь. Почему?
1. GET и POST имеют собственную семантику и не могут быть случайно смешаны.
2. Согласно исследованиям, когда сетевая среда находится в хорошем состоянии, разницу между временем отправки пакета и временем отправки двух пакетов можно в основном игнорировать. В случае плохой сетевой среды двухпакетный TCP дает большие преимущества при проверке целостности пакета данных.
3. Не все браузеры отправят пакет дважды в POST, Firefox отправит его только один раз.
Теперь, когда интервьюер спрашивает вас: «Разница между GET и POST», это у вас в сердце?
В чем разница между GET, POST и HEAD в протоколе HTTP?
ЗАГОЛОВОК: запрашивается только заголовок страницы.
GET: запросить указанную информацию о странице и вернуть тело объекта.
POST: запросить сервер принять указанный документ в качестве нового подчиненного объекта для указанного URL.
Данные, отправленные методом GET, могут иметь максимум 1024 байта, в то время как POST не имеет этого ограничения.
(3) GET. Это наиболее часто используемый браузерами метод запроса сервера. Метод POST также используется для передачи данных, но, в отличие от GET, при использовании POST данные передаются не после URI, а в виде отдельной строки, которая должна быть передана, и в это время должен быть отправлен Content_length. Заголовок указывает на длина данных, за которой следует пустая строка, а затем фактические переданные данные. Форма веб-страницы обычно отправляется POST.
Когда я должен использовать метод GET или POST? Какая между ними разница?
в чем разница при использовании GET или POST способ? Какой из них безопаснее? Каковы преимущества каждого из них?
15 ответов
когда пользователь вводит информацию в форме и нажимает кнопку Отправить, существует два способа отправки информации из браузера на сервер: в URL-адресе или в теле HTTP-запроса.
метод GET, который использовался в Примере ранее, добавляет пары имя / значение к URL-адресу. К сожалению, длина URL ограничена, поэтому этот метод работает только при наличии нескольких параметров. URL-адрес может быть усечен, если форма использует большое количество параметров, или если параметры содержат большие объемы данных. Кроме того, параметры, переданные по URL-адресу, видны в поле адреса браузера не лучшее место для отображения пароля.
альтернативой методу GET является метод POST. Этот метод упаковывает пары имя / значение внутри тела HTTP-запроса, что делает более чистый URL-адрес и не налагает ограничений по размеру на выходные данные форм. Это также более безопасно.
лучшим ответом был первый.
от w3schools.com Вот ключевые моменты GET request
и вот ключевые моменты POST request
есть два общих «безопасности» последствия для использования GET. Поскольку данные отображаются в строке URL, возможно, кто-то, глядя через плечо на адресную строку/URL, может просмотреть что-то, что они не должны быть посвящены, например, файл cookie сеанса, который потенциально может быть использован для захвата вашего сеанса. Имейте в виду все есть телефоны с камерой.
другое значение безопасности GET связано с тем, что переменные GET регистрируются в журнале доступа к большинству веб-серверов как часть запрашивающего URL. В зависимости от ситуации, регулирования климата и общей чувствительности данных, это может вызывать обеспокоенность.
некоторые клиенты / брандмауэры / системы IDS могут хмуриться на запросы GET, содержащие чрезмерный объем данных, и поэтому могут предоставлять несвязанные результаты.
POST поддерживает расширенные функции, такие как поддержка многосоставного двоичного ввода, используемого для загрузки файлов на веб-серверы.
POST требует заголовок content-length, который может увеличить сложность реализации конкретного клиента приложения, поскольку размер передаваемых данных должен быть известен заранее, предотвращая формирование запроса клиента в исключительно однопроходном инкрементном режиме.. Возможно, небольшая проблема для тех, кто предпочитает злоупотреблять HTTP, используя его в качестве транспорта RPC.
другие уже проделали хорошую работу по освещению семантических различий и части» когда » этого вопроса.
Я использую GET, когда я получаю информацию С URL и сообщение, когда я отправляю информацию to URL-адрес.
вы должны использовать POST, если есть много данных или конфиденциальной информации (действительно конфиденциальный материал также нуждается в безопасном соединении).
используйте GET, если вы хотите, чтобы люди могли пометить вашу страницу, потому что все данные включены в закладку.
просто будьте осторожны с людьми, нажимая обновить с помощью метода GET, потому что данные будут отправляться снова каждый раз без предупреждения пользователя (сообщение иногда предупреждает Пользователя о повторной отправке данных).
методы Get и Post не имеют ничего общего с используемой вами серверной технологией, она работает одинаково в php, asp.net или Руби. GET и POST являются частью протокола HTTP. Как отметил Марк, POST более безопасен. Формы POST также не кэшируются браузером. POST также используется для передачи больших объемов данных.
этой W3C в документе объясняет использование HTTP GET и POST.
Я думаю, что это авторитетный источник.
резюме (раздел 1.3 данного документа):
причина использования POST при внесении изменений в данные:
кроме того, не помещайте конфиденциальную информацию в строку запроса (только опция с GET), потому что она отображается в адресной строке, закладках и журналах сервера.
надеюсь, это объясняет, почему люди говорят, что сообщение «безопасно». Если вы передаете конфиденциальные данные, вы должны использовать SSL.
GET и POST являются HTTP-методами, которые можете достижения подобных целей
GET в основном только для получения (извлечения) данных GET не должно иметь тела, поэтому, кроме куки, единственное место для передачи информации находится в URL-адресе, а URL-адреса ограничены по длине, GET менее безопасно по сравнению с POST потому что отправленные данные являются частью URL
POST может включать в себя что угодно, например, хранение или обновление данных, или заказ продукта, или отправку электронной почты. POST метод имеет тело.
POST метод защищен для передачи конфиденциальной и конфиденциальной информации на сервер, он не будет видимые в параметрах запроса в URL и параметры не сохраняются в истории браузера. Нет никаких ограничений на длину данных. Когда мы перезагружаем браузер, он должен предупредить пользователя о том, что данные будут повторно отправлены. POST метод не может быть закладки
используйте метод GET, если вы хотите получить ресурсы из URL. Вы всегда можете увидеть последнюю страницу, если нажмете кнопку «Назад» Вашего браузера, и она может быть заложена, поэтому она не так безопасна, как метод POST.
используйте метод POST, если вы хотите «отправить» что-то в URL. Например, вы хотите создать учетную запись google, и вам может потребоваться заполнить всю подробную информацию, затем вы нажмете кнопку «Отправить» (здесь называется метод POST), как только вы успешно отправите, и попробуйте нажать кнопку Назад Вашего браузера, вы получите ошибку или новую пустую форму, а не последнюю страницу с заполненной формой.
следует упомянуть несколько важных замечаний
согласно w3cschools.com ‘ s explaination
GET-запросы могут кэшироваться
GET запросы остаются в истории браузера
GET запросы могут быть закладки
GET запросы никогда не должны использоваться при работе с конфиденциальными данными
GET запросы имеют ограничения длины
GET запросы должны использоваться только для извлечения данных
запросы POST никогда не кэшируются
POST запросы не остаются в истории браузера
POST-запросы не могут быть закладки
запросы POST не имеют ограничений на длину данных