Для чего нужен post

Типы HTTP-запросов и философия REST

Этот пост — ответ на вопрос, заданный в комментарии к одной из моих статей.

В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.

Итак, что же представляет из себя один из основных протоколов интернета? Педантов отправлю к RFC2616, а остальным расскажу по-человечески 🙂

Этот протокол описывает взаимодействие между двумя компьютерами (клиентом и сервером), построенное на базе сообщений, называемых запрос (Request) и ответ (Response). Каждое сообщение состоит из трех частей: стартовая строка, заголовки и тело. При этом обязательной является только стартовая строка.

Стартовые строки для запроса и ответа имеют различный формат — нам интересна только стартовая строка запроса, которая выглядит так:

где METHOD — это как раз метод HTTP-запроса, URI — идентификатор ресурса, VERSION — версия протокола (на данный момент актуальна версия 1.1).

Заголовки — это набор пар имя-значение, разделенных двоеточием. В заголовках передается различная служебная информация: кодировка сообщения, название и версия браузера, адрес, с которого пришел клиент (Referrer) и так далее.

Тело сообщения — это, собственно, передаваемые данные. В ответе передаваемыми данными, как правило, является html-страница, которую запросил браузер, а в запросе, например, в теле сообщения передается содержимое файлов, загружаемых на сервер. Но как правило, тело сообщения в запросе вообще отсутствует.

Пример HTTP-взаимодействия

Первая строка — это строка запроса, остальные — заголовки; тело сообщения отсутствует

Ресурсы и методы

Вернемся к стартовой строке запроса и вспомним, что в ней присутствует такой параметр, как URI. Это расшифровывается, как Uniform Resource Identifier — единообразный идентификатор ресурса. Ресурс — это, как правило, файл на сервере (пример URI в данном случае ‘/styles.css’), но вообще ресурсом может являться и какой-либо абстрактный объект (‘/blogs/webdev/’ — указывает на блок «Веб-разработка», а не на конкретный файл).

Тип HTTP-запроса (также называемый HTTP-метод) указывает серверу на то, какое действие мы хотим произвести с ресурсом. Изначально (в начале 90-х) предполагалось, что клиент может хотеть от ресурса только одно — получить его, однако сейчас по протоколу HTTP можно создавать посты, редактировать профиль, удалять сообщения и многое другое. И эти действия сложно объединить термином «получение».

В игру вступает REST

REST (REpresentational State Transfer) — это термин был введен в 2000-м году Роем Филдингом (Roy Fielding) — одним из разработчиков протокола HTTP — в качестве названия группы принципов построения веб-приложений. Вообще REST охватывает более широкую область, нежели HTTP — его можно применять и в других сетях с другими протоколами. REST описывает принципы взаимодействия клиента и сервера, основанные на понятиях «ресурса» и «глагола» (можно понимать их как подлежащее и сказуемое). В случае HTTP ресурс определяется своим URI, а глагол — это HTTP-метод.

REST предлагает отказаться от использования одинаковых URI для разных ресурсов (то есть адреса двух разных статей вроде /index.php?article_id=10 и /index.php?article_id=20 — это не REST-way) и использовать разные HTTP-методы для разных действий. То есть веб-приложение, написанное с использованием REST подхода будет удалять ресурс при обращении к нему с HTTP-методом DELETE (разумеется, это не значит, что надо давать возможность удалить всё и вся, но любой запрос на удаление в приложении должен использовать HTTP-метод DELETE).

REST дает программистам возможность писать стандартизованные и чуть более красивые веб-приложения, чем раньше. Используя REST, URI для добавления нового юзера будет не /user.php?action=create (метод GET/POST), а просто /user.php (метод строго POST).

В итоге, совместив имеющуюся спецификацию HTTP и REST-подход наконец-то обретают смысл различные HTTP-методы. GET — возвращает ресурс, POST — создает новый, PUT — обновляет существующий, DELETE — удаляет.

Проблемы?

Да, есть небольшая проблема с применением REST на практике. Проблема эта называется HTML.

PUT/DELETE запросы можно отправлять посредством XMLHttpRequest, посредством обращения к серверу «вручную» (скажем, через curl или даже через telnet), но нельзя сделать HTML-форму, отправляющую полноценный PUT/DELETE-запрос.

Дело в том, спецификация HTML не позволяет создавать формы, отправляющие данные иначе, чем через GET или POST. Поэтому для нормальной работы с другими методами приходится имитировать их искусственно. Например, в Rack (механизм, на базе которого Ruby взаимодействует с веб-сервером; с применением Rack сделаны Rails, Merb и другие Ruby-фреймворки) в форму можно добавить hidden-поле с именем «_method», а в качестве значения указать название метода (например, «PUT») — в этом случае будет отправлен POST-запрос, но Rack сможет сделать вид, что получил PUT, а не POST.

Источник

Методы GET и POST. Использование и отличия

Для чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен postДля чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен postДля чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен postДля чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен postДля чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен post

HTTP методы GET и POST используются для отправки данных на сервер.

Чаще всего методы используются в HTML формах, гиперссылках и AJAX запросах.

POST и GET запросы можно отправить на сервер с помощью любого программного обеспечения, работающего с протоколом HTTP.

Обработка запросов может отличаться в зависимости от типа сервера.

Какой метод использовать GET или POST, чем отличаются методы

Основное отличие метода GET от POST в способе передачи данных.

Запрос GET передает данные в URL в виде пар «имя-значение» (другими словами, через ссылку), а запрос POST передает данные в теле запроса (подробно показано в примерах ниже). Это различие определяет свойства методов и ситуации, подходящие для использования того или иного HTTP метода.

Например, можно использовать метод GET в HTML форме фильтра товаров: когда нужно, исходя из данных введенных пользователем, переправить его на страницу с отфильтрованными товарами, соответствующими его выбору.

HTTP метод POST поддерживает тип кодирования данных multipart/form-data, что позволяет передавать файлы.

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

В каких случаях использовать POST и когда нужно использовать GET

В таблице ниже показаны распространенные варианты использования HTTP запросов с объяснением в чем разница между GET и POST запросами в конкретной ситуации.

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

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

Отсутствует защита конфиденциальной информации. Введенный пароль будет виден в адресной строке браузера, будет сохранен в истории посещенных сайтов.

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

При повторном обращении по конечной ссылке на сервере будет произведена повторная обработка, например, будет создана повторная заявка, оформлен еще один заказ, создан еще один запрос на обратную связь.

Повторное обращение по конечной ссылке не приведет к повторной обработке запроса с введенными ранее параметрами.

Переход по гиперссылке с параметрами равнозначен отправке запроса через HTML форму.

Нет технической возможности поместить POST запрос в гиперссылку.

СитуацияGETPOST
Фильтр товаров
AJAX запросыИспользуются оба метода. Выбор зависит от контекста. Принципы выбора метода такие же, как и для HTML форм.

Сравнительная таблица HTTP методов GET и POST

В таблице ниже приведены основные свойства и отличия GET и POST методов.

Данные видны всем в адресной строке браузера, истории браузера и т.п.

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

Не более 2048 символов

Примечание: ограничения могут быть установлены сервером.

Страница с параметрами может быть добавлена в закладки

Страница с параметрами не может быть добавлена в закладки.

СвойствоGETPOST
Способ передачи данныхЧерез URLВ теле HTTP запроса
Защита данных
КэшированиеСтраница с параметрами может быть кэшированаСтраница с параметрами не может быть кэширована
Индексирование поисковыми системамиСтраница с параметрами может быть индексированаСтраница с параметрами не может быть индексирована
Возможность отправки файловНе поддерживаетсяПоддерживается
Поддерживаемые типы кодированияapplication/x-www-form-urlencoded
Использование в гиперссылках

ДаНет
Использование в HTML формахДаДа
Использование в AJAX запросахДаДа

Пример использования GET запроса

В примере показана простая HTML форма фильтра по нескольким параметрам.

HTML код формы, генерирующей GET запрос:

После отправки формы браузер переведет пользователя по ссылке:

Ссылка содержит URL документа, отвечающего за обработку и блок параметров. Знак «?» отмечает начало блока параметров GET запроса. Далее находятся пары «имя-значение», разделенные знаком «&». Имена параметров отделены от значений знаком «=».

Переход по ссылке, приведенной выше, будет равнозначен отправке формы с указанными параметрами.

Пример использования POST запроса

В примере показана простая HTML форма авторизации.

HTML код формы, генерирующей POST запрос:

После отправки формы браузер переведет пользователя по ссылке:

Для того, чтобы увидеть переданные параметры, воспользуемся инструментами разработчика.

Запрос состоит из области заголовков и тела запроса.

Для чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен post

В заголовках указана служебная информация: URL обработчика, тип кодирования, параметры браузера и т.д.

В теле запроса содержатся передаваемые параметры. Формат тела запроса может отличаться в зависимости от выбранного типа кодирования.

Источник

POST и GET запросы простыми словами

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

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

Источник

Зачем и кому нужен пост? Неужели так важно, что именно я ем?

Приблизительное время чтения: 4 мин.

Пост — то есть полное или частичное воздержание от употребления определенных продуктов или пищи вообще известен издревле и существует во всех религиях без исключения. Зачем он нужен? Есть хорошая русская пословица: «сытое брюхо к учению глухо».

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

Ряд отцов Церкви небезосновательно говорят даже о божественном происхождении поста, ссылаясь на то, что уже в раю Адам и Ева получили от Бога одну единственную ограничительную заповедь — не вкушать от древа познания добра и зла. «Пост узаконен в раю, — писал святитель Василий Великий. — Такую первую заповедь принял Адам: от древа познания добра и зла не ешь (Быт.2:17). А это не ешь есть узаконение поста и воздержания».

В Ветхом завете пост был очень строгим, подразумевал полный отказ от пищи и мог длиться от нескольких часов до нескольких дней. Посты предваряли национально-религиозные праздники и памятные даты, связанные с трагическими событиями в истории Израиля — например, разрушением Иерусалима вавилонянами. Пост мог вводиться и в некоторых особых случаях, для духовной мобилизации народа после наступления или, наоборот, для предотвращения бедствий и несчастий. Так, услышав проповедь пророка Ионы о грядущей гибели Ниневии, ее жители «объявили пост, и оделись во вретища, от большого из них до малого» (Ион. 3:5). Наконец, в Библии описываются индивидуальные посты — наиболее известен пост пророка Моисея, который он держал сорок дней перед тем, как принять от Бога десять заповедей.

Во всех этих историях гастрономические ограничения выступали не самоцелью, но средством для духовного очищения и преображения постящихся. О том, что физический пост должен находить свое выражение в духовно-нравственном улучшении человека, устами пророка Исаии говорит Сам Господь: «Вот пост, который Я избрал: разреши оковы неправды, развяжи узы ярма, и угнетенных отпусти на свободу, и расторгни всякое ярмо; раздели с голодным хлеб твой, и скитающихся бедных введи в дом; когда увидишь нагого, одень его, и от единокровного твоего не укрывайся. Тогда откроется, как заря, свет твой, и исцеление твое скоро возрастет, и правда твоя пойдет пред тобою, и слава Господня будет сопровождать тебя» (Ис. 58:6-8).

Из Ветхого завета пост перешел в новозаветную эпоху, где его духовная сторона стала еще более важной. Уже в начале Своего земного служения Иисус Христос в нагорной проповеди предостерегает слушателей от формального, внешнего воздержания, которое к тому времени было уже довольно распространено среди фарисеев, отличавшихся показным благочестием. «Когда поститесь, не будьте унылы, как лицемеры, — говорит Он, — ибо они принимают на себя мрачные лица, чтобы показаться людям постящимися. Истинно говорю вам, что они уже получают награду свою. А ты, когда постишься, помажь голову твою и умой лицо твое, чтобы явиться постящимся не пред людьми, но пред Отцом твоим, Который втайне; и Отец твой, видящий тайное, воздаст тебе явно» (Мф. 6:16-18). Господь подчеркивает, что физические лишения и ограничения поста не имеют смысла без духовных усилий, молитвы и покаяния.

Для чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен post

Отношение к посту как средству духовного очищения пронизывает всю христианскую аскетику, которая рассматривает пост как необходимое духовное упражнение для христианина. Не случайно в православии количество постных дней в году колеблется от 174 до 212, а помимо многодневных существуют однодневные посты в среду и пятницу. Их цель — сделать человека лучше, иначе они просто бессмысленны. Очень хорошо пишет об этом святитель Иоанн Златоуст: «Итак, что ты, брат, собрал при помощи поста? Не говори мне, что “я столь много дней постился, того и другого не съел, не пил вина, претерпел нечистоту”, но покажи мне, сделался ли ты кротким, между тем как был гневливым, и сделался ли человеколюбивым, между тем как до того был жестоким, потому что, если ты упоен гневом, то зачем угнетаешь свою плоть? Если внутри — зависть и корыстолюбие, то какая польза от питья воды?».

Для чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен post

|Читайте также:

«Решил наконец поститься. Как не наломать дров?» — 10 советов священника

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

Пост нужен не Богу. Он нужен нам, чтобы правильно выстраивать приоритеты. Пост помогает научиться подчинять желания разуму и воле, а разум и волю — слову Божию. Пост для человека — не более чем инструмент. Ограничивая плотские страсти, мы высвобождаем энергию для духовной жизни. Ослабив тело воздержанием от пищи, делаем свою душу более восприимчивой к общению с Творцом.

Источник

Блог Vaden Pro

GET или POST? – вот в чем вопрос!

Для чего нужен post. Смотреть фото Для чего нужен post. Смотреть картинку Для чего нужен post. Картинка про Для чего нужен post. Фото Для чего нужен post

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

Итак, чтобы не допускать принятие неправильных решений, следует подробнее разобрать суть обоих методов. Это позволит докопаться до истины и вывести веб-разработчика на верный путь.

Очень действенный метод восприятия информации – это ассоциативное мышление, поэтому предлагаю придумать для каждого понятия ассоциацию и связывать функциональные возможности с этим предметом. Обратимся к названиям методов, а точнее к их переводу на русский язык. К примеру, GET переводится, как получать, другими словами получить запрос. А вот POST можно трактовать, пересылка письма по почте. Для программиста это значит, что такой метод будет связан с передачей информации на сервер. Это тот необходимый минимум, который научит новичка не путаться в этих понятиях. Однако, если простые лендинги с формой отправки данных – это для Вас не предел, тогда подойдем в плотную к этому вопросу.

Безопасные и небезопасные HTTP запросы

Изучив спецификацию HTTP 1.1, можно констатировать тот факт, что классификация разновидностей методов запросов насчитывает два типа: безопасный и небезопасный запрос.

Теперь стоит разъяснить суть каждого из методов. Безопасными называются те запросы, которые не имеют никакого влияния на ресурс, они просто запрашивают и помогают считывать информацию. Примером такого запроса является отображение картинки – через ее адрес идет запрос на сервер в указанную директиву, где должен находится файл с картинкой. Такой тип запроса распространяется на методы HEAD и GET.

На заметку

Безопасный метод – это еще не гарантия отсутствия проблем. Ущерб может нанести зацикливание определенного типа запроса, даже если он и безопасный.

Теперь обратимся к понятию небезопасного запроса. Такой метод предусматривает внесение изменений определенным данным на сайте. Наиболее вероятные проблемы возникают в том случае, когда запрос осуществляется повторно или без надобности. В качестве примера следует отметить такие процессы, как онлайн-регистрация, пересылание сообщения или веб-платежи. Пот такой тип запроса относят POST, PUT и DELETE методы.

Идемпотентные методы

Это сложное для восприятия и произношения понятие означает способность некоторых из методов предоставлять одни и те же данные при многочисленных запросах. Та ситуация, когда информация была обновлена, во внимание не берется. Изъясняясь более понятно, это тот случай, когда при запросе файла по одному и тому же адресу будет выводиться постоянно одна и та же информация (например, картинка). Такая способность присуща GET, PUT, DELETE методам.

На этом будем завершать анализ методов. Теперь вы можете убедиться в том, что не совсем POST похож на GET. Поэтому при выборе метода в первую очередь следует проанализировать поставленные цели для ресурса, а затем, исходя из принятых решений, делать выбор. Да, стоит отметить, что по умолчанию работает метод GET.

Для удобности привожу шпаргалку, которая в большинстве случаев направит разработчика на верный путь и позволит принять верное решение:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *