Что такое get и post запросы

Что такое get и post запросы

В программировании POST — один из многих методов запроса, поддерживаемых HTTP протоколом, используемым во Всемирной паутине. Метод запроса POST предназначен для запроса, при котором веб-сервер принимает данные, заключённые в тело сообщения, для хранения. Он часто используется для загрузки файла или представления заполненной веб-формы.

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

Содержание

Посылаемые данные [ править | править код ]

Всемирная паутина и протокол HTTP основаны на ряде методов запросов или «глаголов», включая POST и GET, а также PUT, DELETE и ряд других. Веб-браузеры обычно используют только GET и POST, но REST онлайн-приложения заставляют использовать и многие другие. Метод POST предназначен для отправки представления новой сущности на сервер, так что она будет храниться как подресурс ресурса, идентифицированного URI. Например, для URI http://example.com/customers (недоступная ссылка) с помощью POST запросов можно было бы представлять новых клиентов, каждый из которых содержал бы имя, адрес, контактные данные и тому подобное. Разработчики сайтов отошли от этой концепции по двум причинам. Во-первых, нет никаких технических причин для URI текстуально описывать подчинённые веб-ресурсы, на которых будут сохранены данные, посланные методом POST. В самом деле, последняя часть URI более вероятно опишет страницу обработки веб-приложения и её технологию, например http://example.com/applicationform.php (недоступная ссылка) . Во-вторых, учитывая естественное ограничение большинства веб-браузеров использовать только методы GET или POST, разработчики понимали необходимость добавления дополнительных возможностей в метод POST, включая изменение существующих записей и их удаление.

Попытки исправить первый недостаток начались ещё в 1998 году. Фреймворки веб-приложений, такие как Ruby on Rails и другие помогали разработчикам предоставлять своим пользователям человекопонятные URL. Что касается второго пункта, можно написать клиентские сценарии или автономные приложения, которые будут использовать другие методы HTTP, преобразовывая их затем в метод POST.

То есть нельзя сказать, что каждая веб-форма должна содержать метод POST в открывающем теге. Многие формы используются более точно для получения информации с сервера, без изменения основных баз данных. Для таких форм поиска идеально подходит метод GET.

Читайте также:  Сюжет игры layers of fear

Бывают случаи, когда HTTP GET менее подходит даже для получения данных. Примером является ситуация, когда большое количество данных должно быть записано в URL. Браузеры и веб-серверы могут иметь ограничения на длину URL, которые они обрабатывают без усечения или ошибки. URL-кодирование зарезервированных символов в адресе и строке запроса может значительно увеличить длину, в то время как HTTP-сервер Apache может обрабатывать до 4000 символов (8190 байт) в URL [1] , Microsoft Internet Explorer ограничивает длину любого URL 2048 символами [ источник не указан 41 день ] .

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

Использование для представления веб-форм [ править | править код ]

Когда веб-браузер отправляет POST-запрос с элементами веб-формы, по умолчанию интернет-тип данных медиа — application/x-www-form-urlencoded . Это формат для кодирования пар ключ-значение с возможностью дублирования ключей. Каждая пара ключ-значение отделяется символом & , ключ отделён от значения символом = . В ключах и значениях пробелы заменяются на знак + , и затем, используя URL-кодирование, заменяются все не буквенно-цифровые символы.

будет закодировано как

Начиная с HTML 4.0, формы могут также представить данные в multipart/form, как определено в RFC 2388 (см. также RFC 1867 для более ранней экспериментальной версии определённой как расширение HTML 2.0 и упоминаемой в HTML 3.2). Частный случай метода POST при обращении на ту же страницу, которой принадлежит форма, называется обратной передачей.

Влияние на состояние сервера [ править | править код ]

В RFC 2616 метод POST должен быть использован для любого контекста, в котором запрос не идемпотентен: то есть, он вызывает изменение состояния сервера каждый раз при выполнении, такие как отправка комментария к сообщению в блоге или интернет-голосование. На практике, метод GET часто зарезервирован, не просто для идемпотентных действий, но и для нульпотентных, то есть без побочных эффектов (в отличие от «без побочных эффектов при втором и последующих запросах» как с идемпотентными операциями). По этой причине сайты поисковых систем, таких как индексаторы поисковых систем обычно используют исключительно метод GET, для предотвращения каких-либо действий при автоматизированных запросах.

Читайте также:  Как правильно считать процент от суммы

Тем не менее, есть причины почему POST используется даже для идемпотентных запросов, особенно если запрос использует не-ASCII символы или очень длинный, из-за ограничений на URL — строка запроса GET-метода может быть очень длинной, особенно при использовании URL-кодирования.

Два наиболее используемых метода HTTP: GET и POST.

Что такое HTTP?

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

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

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

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

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

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

  • GET — Запрашивает данные из указанного ресурса
  • POST — Отправка данных для обработки в указанный ресурс

Метод Get

Обратите внимание, что строка запроса (пары «имя-значение») отправляется в URL-адрес запроса GET:

Некоторые другие заметки о запросах GET:

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

Метод POST

Обратите внимание, что строка запроса (пары «имя-значение») отправляется в теле HTTP-сообщения запроса POST:

Некоторые другие примечания по запросам POST:

  • POST запросы никогда не кэшируются
  • Запросы POST не сохраняются в журнале обозревателя
  • Запросы POST не могут быть закладками
  • Запросы POST не имеют ограничений по длине данных

Сравнить GET vs. POST

В следующей таблице сравниваются два метода HTTP: Get и POST.

Никогда не используйте Get при отправке паролей или другой конфиденциальной информации!

GET POST
Кнопка возврата/перезагрузка Безвредны Данные будут повторно отправлены (браузер должен предупредить пользователя о том, что данные будут повторно отправлены)
Закладка Можно закладка Не может быть Закладка
Кэшированные Может кэшироваться Не кэшируется
Тип кодировки application/x-www-form-urlencoded application/x-www-form-urlencoded or multipart/form-data. Использование многокомпонентной кодировки для двоичных данных
Истории Параметры остаются в журнале обозревателя Параметры не сохраняются в журнале обозревателя
Ограничения по длине данных Да, при отправке данных метод Get добавляет данные в URL-адрес; и длина URL ограничена (максимальная длина URL составляет 2048 символов) Без ограничений
Ограничения типа данных Разрешены только символы ASCII Никаких ограничений. Двоичные данные также разрешены
Безопасности Get менее безопасен по сравнению с POST, поскольку отправляемые данные являются частью URL-адреса POST немного безопаснее, чем Get, поскольку параметры не сохраняются в журнале обозревателя или в журналах веб-сервера
Видимость Данные видны всем в URL Данные не отображаются в URL-адресе
Читайте также:  Как поменять заставку при включении компьютера

Другие методы HTTP-запросов

В следующей таблице перечислены некоторые другие методы HTTP-запросов:

Сегодня мне немного захотелось ударится в примитивные вещи и описать то, что можно найти во всемирной сети в большом количестве и без особых трудов. Речь пойдет практически о святая святых протокола HTTP: POST и GET запросах.

Многие спросят зачем? Отвечу коротко и ясно: что это и зачем это нужно — знают далеко не все, а те кто хочет узнать об этом (при этом мало что понимая в it сфере) часто не могут понять то что пишут во многих и многих статьях посвященных данной теме. Я же постараюсь на пальцах объяснить что такое POST и GET запросы и с чем их едят.
Итак, начнем наше путешествие в сказку…
Если вы читаете данное сообщение, то Вы как минимум знаете как выглядит Интернет и что такое Интернет сайт. Опустив все тонкости работы всемирной паутины, будем оперироваться такими понятиями как пользователь и сайт. Как ни крути но эти два субъекта должны как-то взаимодействовать друг с другом. Вот люди, например, общаются между собой благодаря жестам, эмоциям и речи, животные издают какие-то звуки, а что же происходит при «общении» человека и Интернет ресурса? Здесь мы имеем случай обмена информацией, который можно перенести и на человеческий разговор плана «Вопрос-Ответ». Причем и вопросы и ответы могут задавать как и пользователь, так и сайт. Когда мы говорим о сайте, то его вопросы и ответы, как правило, всегда выражаются в виде Интернет страницы с тем или иным текстом. Когда же речь идет о пользователе, то тут все происходит благодаря GET и POST запросам (конечно не только, но мы говорим о них).

Ссылка на основную публикацию
Чернила светятся в ультрафиолете
Употребление симпатических (невидимых) чернил подразумевает запись неразличимую в обычных обстоятельствах, но появляющуюся после фото, химической или физической проявки. Это есть...
Формула частота в excel
При анализе данных периодически возникает задача подсчитать количество значений, попадающих в заданные интервалы "от и до" (в статистике их называют...
Формула тейлора с остатком в форме пеано
Формулировка: Если существует , то представима в следующем виде: Это выражение называется формулой Тейлора с остаточным членом в форме Пеано...
Чернила для принтера в шприцах
Заправочные комплекты INKO в шприцах 3х20 мл., с высококачественными чернилами на основе красителя (Dye ink) и пигментные чернила (Pigment ink)...
Adblock detector