kancboom.ru

Как отправить post запрос из браузера: метод пост. POST, GET: чем отличаются запросы друг от друга Значение по умолчанию

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

Перейдите по следующему адресу (это для наглядного объяснения): http://calendarin.net/calendar.php?year=2016 Обратите внимание на адресную строку браузера: calendarin.net/calendar.php?year=2016 Основной файл называется, за ним следует вопросительный знак (?) и параметр «year» со значением «2016». Так вот, всё, что следует за вопросительным знаком, это и есть GET-запрос. Всё просто. Чтобы передать не один параметр, а несколько, то их нужно разделить амперсандом (&). Пример: calendarin.net/calendar.php?year=2016&display=work-days-and-days-off

Основной файл всё также называется, за ним следует вопросительный знак (?), затем - параметр «year» со значением «2016», затем - амперсанд (&), затем - параметр «display» со значением «work-days-and-days-off».

GET-параметры могут изменяться прямо в адресной строке браузера. Например, изменив значение «2016» на «2017» и нажав клавишу, вы перейдёте к календарю на 2017 год.

Это передача данных скрытым способом (адрес страницы не изменяется); то есть увидеть, что было передано, можно только с помощью программы (скрипта). Например, в следующем инструменте для подсчёта символов в тексте исходные данные передаются методом POST: http://usefulonlinetools.com/free/character-counter.php

Если остались вопросы, комментарии и мой E-mail к вашим услугам.

Кроме метода GET, который мы рассмотрели в предыдущей заметке, существует еще один метод отправки запроса по протоколу HTTP – метод POST. Метод POST тоже очень часто используется на практике.

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

Для того, чтобы выполнить этот вид запроса, нам необходимо нажать на кнопку с атрибутом type=»submit», которая расположена на веб-странице. Обратите внимание, что эта кнопка расположена в элементе

, у которого установлен атрибут method со значением post.

Рассмотрим этот HTML-код:

Введите текст:


Если пользователь введет в текстовое поле какой-либо текст и нажмет на кнопку «Отправить», то на сервер будет отправлена переменная text со значением того содержимого, которое ввел пользователь.

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

Эта переменная будет отправлена методом POST.

Если в форме написать так:

То данные будут отправляться методом GET.

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

Еще одно отличие метода POST от GET, метод POST скрывает все передаваемые им переменные и их значения, в своём теле (Entity-Body). В случае с методом GET они хранились в строке запроса (Request-URI).

Вот пример запроса, выполненного методом POST:

POST / HTTP/1.0\r\n
Host: www.site.ru\r\n
Referer: http://www.site.ru/index.html\r\n
Cookie: income=1\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: 35\r\n
\r\n
login=Dima&password=12345

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

Кроме того, методом POST можно передавать не только текст, но и мультимедиа данные (картинки, аудио, видео). Существует специальный параметр Content-Type, который определяет тот вид информации, который необходимо передать.

Ну и, наконец, чтобы на сервере получить данные, которые были переданы этим методом, используется переменная POST.

Вот пример обработки на языке PHP:

echo $_POST[‘text’];
?>

В прошлой заметке, мы определились с тем, что браузер (клиент) отправляет серверу HTTP запросы, а сервер отправляет клиенту HTTP ответы. Эти запросы и ответы оформляются по определенным правилам. Есть, что-то вроде синтаксиса, как и в какой последовательности, должно быть написано. Должна быть строго определенная структура.

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

HTTP запрос состоит из трех основных частей, которые идут в нем именно в том порядке, который указан ниже. Между заголовками и телом сообщения находится пустая строка (в качестве разделителя), она представляет собой символ перевода строки.

Пустая строка (разделитель)

Post и Get запросы, какая между ними разница и что лучше и для каких целей?

тело сообщения (Entity Body) – необязательный параметр

Строка запроса – указывает метод передачи, URL-адрес, к которому нужно обратиться и версию протокола HTTP.

Заголовки – описывают тело сообщений, передают различные параметры и др. сведения и информацию.

тело сообщения — это сами данные, которые передаются в запросе. Тело сообщения – это необязательный параметр и может отсутствовать.

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

Более подробно, каждый элемент запроса, мы рассмотрим в следующих заметках.

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

Запрос от браузера:

Host: webgyry.info

Cookie: wp-settings

Connection: keep-alive

В следующем примере уже присутствует тело сообщения.

Ответ сервера:

Content-Type: text/html; charset=UTF-8

Transfer-Encoding: chunked

Connection: keep-alive

Keep-Alive: timeout=5

X-Pingback: //webgyry.info/xmlrpc.php

Документ без названия

Вот такими сообщениями обмениваются клиент и сервер по протоколу HTTP.

Кстати, хотите узнать есть ли смысл в каком-то элементе на вашем сайте с помощью «целей» Яндекс Метрики и Google Analytics?

Уберите то, что НЕ работает, добавьте то, что работает и удвойте вашу выручку.

Курс по настройке целей Яндекс Метрики..

Курс по настройке целей Google Analytics..

HTTP клиент посылает запрос на сервер в форме cсообщения-запроса, которое имеет следующий формат:

  • Строка запроса (обязательный элемент)
  • Заголовок (опционалный элемент)
  • Пустая строка (обязательный элемент)
  • Тело сообщения (опциональный элемент)

Рассмотрим каждый из этих элементов по отдельности.

Строка запроса

Строка запроса начинается с токена метода, после которого следует URI запроса и версия протокола. Элементы отедляются друг от друга пробелами:

Расмотрим данный элемент более подробно

Метод запроса

Данный элемент указывает метод, который должен быть вызван на стороне сервера по указанному индентификатору URI.

В HTTP существует восемь методов:

  • HEAD
    Используется для получения строки статуса и заголовка от сервера по URI. Не изменяет данные.
  • GET
    Используется для получения данных от сервера по указанному URI. Не изменяет данные.
  • POST
    Используется для отправки данных на сервер (например информации о разработчике и т.д.) с помощью форм HTML.
  • PUT
    Замещает все предыдущие данные на ресурсе новыми загруженными данными.
  • DELETE
    Удаляет все текущие данные на ресурсе, определённом URI.
  • CONNECT
    Устанавливает туннельное соединение с сервером по указанному URI.
  • OPTIONS
    Описывает свойства соединения для указанного ресурса.
  • TRACE
    Предоставляет сообщение, содержащее обратный трейс расположения указанного в URI ресурса.

URI запроса

URI (Uniform Resource Identifier) – это идентификатор ресурса на который отправляется запрос. Ниже приведён наиболее часто встречающийся формат URI:

‘*’ используется когда HTTP запрос не относится к конкретному ресурсу, но к серверу. Используется только в случае, когда метод не обязательно применять к ресурсу. Например,

абсолютныйURI используется, когда HTTP запрос выполняется на прокси. Прокси запрашивается для передачи запроса из доступного кэша и возвращает ответ. Например:

асболютный_путь | источник используется наиболее чатсо.

Учимся работать с GET и POST запросами

Запрашивается конкретный ресурс определённого сервера. Например, клиент хочет получить ресурс с сервера через 80-й порт. Адрес ресурса “www.proselyte.net” и отправляет следующий запрос:

Запрос полей заголовка

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

Ниже приведён списко наиболее важных полей заголовка, которые могут быть использованы:

  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Authorization
  • Expect
  • If-Match
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • If-Unmodified-Since
  • Range
  • Referer
  • User-Agent

Если мы заотим реализовать своего собственного клиента и свой собственный веб-сервер, то мы можем создавать собственные поля заголовка.

Пример HTTP запроса

На этом мы заканчиваем изучение запросов HTTP.
В следующей статье мы рассмотрим HTTP ответы.

Одним из способов, как можно отправить запрос по протоколу HTTP к серверу, является запрос методом GET. Этот метод является самым распространенным и запросы к серверу чаще всего происходят с его использованием.

Самый простой способ, как можно создать запрос методом GET- это набрать URL-адрес в адресную строку браузера.

Браузер передаст серверу примерно следующую информацию:

GET / HTTP/1.1
Host: webgyry.info
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: wp-settings
Connection: keep-alive

Запрос состоит из двух частей:

1. строка запроса (Request Line)

2. заголовки (Message Headers)

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

Различие между методами GET и POST

Это можно делать с помощью специальных GET параметров.

Чтобы добавить GET параметры к запросу, нужно в конце URL-адреса поставить знак «?» и после него начинать задавать их по следующему правилу:

имя_параметра1=значение_параметра1& имя_параметра2=значение_параметра2&…

Разделителем между параметрами служит знак «&».

К примеру, если мы хотим передать серверу два значения, имя пользователя и его возраст, то это можно сделать следующей строкой:

http://site.ru/page.php?name=dima&age=27

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

Вот пример, как это можно сделать на PHP.

echo «Ваше имя: » . $_GET[«name»] . «
»;
echo «Ваш возраст: » . $_GET[«age»] . «
»;
?>

Конструкция $_GET[«имя_параметра»] позволяет выводить значение переданного параметра.

В результате выполнения этого кода в браузере выведется:

Ваше имя: dima
Ваш возраст: 27

мы тоже выполняем запрос к серверу методом GET.

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

Action и method

Form имеет много атрибутов, но основными и обязательными являются и . Если эти атрибуты отсутствуют, то форма не будет принимать введенные значения.

Атрибут Action

— атрибут, в котором указывается ссылка обработчика значений. То есть элемент, который указан в , будет обрабатывать значения формы. Если не указать его, то все значения вернутся к исходному значению, обновляя страницу.

Можно указать путь "form.html ", но чаще используются обработчики написанные на языке "php(form.php) ". Может быть и такой вариант, что страница, на которой находится форма, сама обрабатывает значения и написана на языке php. В этом случае можно не указывать атрибут .

Также, в качестве обработчика может служить адрес электронной почты. Чтобы записать его в атрибуте action используется ключевое слово mailto:, в нем указывается имя E-Mail адреса.

Если использовать E-Mail для отправки, то при активации, откроется стандартная программа Windows.

Атрибут Method

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

Всего способов обработки 2 — и Они являются значениями атрибута.

Каждый из значений можно вводить как с большой, так и с маленькой буквы. Большого значения это не имеет.

Метод GET

— метод протокола HTTP, который является наиболее используемым. Он получает все данные формы, обрабатывает их, а затем отображает в адресной строке.

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


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

Не используйте для создания форм с конфиденциальной информацией. Такие формы имеют повышенную вероятность взлома.

Метод POST

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

Метод Позволяет передать больший объем информации, нежели . Можно передавать маленькие текстовые файлы, объемом до 4КБ.

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

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

Заключение

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

Можете подробно разобраться в этих методах изучив дополнительную информацию. Удачи в изучении!

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

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

Работа с формами в PHP и HTML

Формы обозначаются тегом form:

Атрибут method указывает каким методом будет производиться отправка формы. Существуют 2 метода - GET и POST . Подробнее от этом читайте чуть ниже, пока в краце расскажем об основных элементах формы:

Текстовое поле - Input text

Текстовое поле, в которое можно вводить информацию. Атрибут name - имя текстового поля, value - значение. Выглядят вот так:

Кнопка - Input Submit

Кнопка, используется для отправки форм. Выглядит вот так:

Текстовой блок - Textarea

Текстовой блок, обычно используется для написания сообщений большого размера. Атрибут rows, cols - длина и ширина.

Внешний вид:

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

Метод GET и POST при отправке форм

Методы GET и POST указываются в атрибуте method формы при ее инициализации:

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

В PHP данные полученные методом GET хранятся в переменной $_GET . Данные переданные методом POST хранятся в переменной $_POST .

Напишем в начале код для работы с методом GET, потом методом POST.

Формы - Дизайн студия OX2.ru

 

print_r($_GET); //Выводим массив функцией print_r
?>

Вашем имя:
Сообщение:

Теперь переделаем скрипт, для отправки данных методом POST.

Формы - Дизайн студия OX2.ru

 

print_r($_POST); //Выводим массив функцией print_r
?>

Вашем имя:
Сообщение:

Чтобы лучше понять работу с формами на PHP , отправку и прием данных методами POST и GET , в следующем уроке сделаем простенькую логическую игру.

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

OX2 2014-10-05 2014-10-05

Описание

Атрибут method сообщает серверу о методе запроса.

Синтаксис

...

Значения

Значение атрибута method не зависит от регистра. Различают два метода — get и post.

Get Этот метод является одним из самых распространенных и предназначен для получения требуемой информации и передачи данных в адресной строке. Пары «имя=значение» присоединяются в этом случае к адресу после вопросительного знака и разделяются между собой амперсандом (символ &). Удобство использования метода get заключается в том, что адрес со всеми параметрами можно использовать неоднократно, сохранив его, например, в закладки браузера, а также менять значения параметров прямо в адресной строке. post Метод post посылает на сервер данные в запросе браузера. Это позволяет отправлять большее количество данных, чем доступно методу get, поскольку у него установлено ограничение в 4 Кб. Большие объемы данных используются в форумах, почтовых службах, заполнении базы данных, при пересылке файлов и др.

Обязательный атрибут

Значение по умолчанию

HTML5 IE Cr Op Sa Fx

Тег FORM, атрибут method

Загрузка...