HTTP или HyperText Transfer Protocol – это «протокол передачи гипертекста». Такое название получил протокол прикладного уровня передачи информации. Активно применяется для обработки и передачи произвольной информации.
Для выполнения различных операций над ресурсами соответствующий протокол использует так называемые методы. Это последовательность любых символов, кроме управляющих и разделителей, указывающая на основную команду, выполняемую над объектом. Они встречаются не только в HTML, но и в PHP. Далее предстоит изучить основы работы с запросами get и post. Информация пригодится каждому, кто планирует разработку клиент-серверного приложения.
Методы – определение
HTTP Method – это инструкция по обработке данных. Представляет собой короткое английское слово, записанное заглавными буквами. При формировании HTTP Methods необходимо помнить, что соответствующие «ключи» чувствительны к регистру.
Сервер способен обрабатывать самые разные методы. Нет отдельных команд для серверной или клиентской части приложения. Если server не распознал посланный со стороны client операцию, то он возвращает статус 501. Когда запрос известен, но к задействованному ресурсу он неприменим, возвращается сообщение с кодом 405. Обе ситуации требуют от сервера активации заголовка Allow со списком методов, которые поддерживаются в процессе работы.
Поддерживаемые команды
Запросы типа GET и (или) POST встречаются очень часто. Они активно применяются при обработке протокола HTTP на HTML или PHP. Далее эти две «команды» будут изучены более подробно. Сначала необходимо разобраться с тем, какие вообще существуют HTML request:
- OPTIONS;
- GET;
- HEAD;
- POST;
- PUT;
- PATCH;
- DELETE;
- CONNECT;
- TRACE.
Каждый представленный метод будет рассмотрен более подробно. Особое внимание уделено различиям GET и request POST. С этими двумя типами команд работает каждый сервер. Методы похожи между собой, но имеют определенные отличия. Разница для новичков в них может быть неочевидной, поэтому соответствующие запросы рассмотрены подробнее остальных. Они являются «базовыми» для работы с HTTP-протоколами.
OPTIONS
Метод, который используется для определения возможностей веб-сервера или параметров подключения для того или иного ресурса. В качестве ответа включается заголовок Allow со списком поддерживаемых запросов. В заголовке иногда встречается информация о поддерживаемых в процессе работы расширениях.
Запрос со стороны клиента может включать в себя тело сообщения. Оно пригодится для указания интересующих сведений. Формат тела и порядок работы с ним на данный момент никак не определен. Сервер должен игнорировать его. То же самое происходит с телом в ответе сервера.
Для уточнения информации о возможностях всего сервера программы, клиенту необходимо через символ «*» (звездочка) указать URI. Запросы OPTIONS * HTTP/1.1 могут применяться для проверки работоспособности проекта и его тестирования на предмет поддержки указанного в method протокола.
PUT
PUT Query используется для загрузки содержимого запроса на указанный URI. Если ресурса по указанному адресу нет, сервер создаст его и вернет статус 201ю в противном случае в качестве ответа используется:
- 200 – OK;
- 204 – No Content;
- 501 – когда какой-то из заголовков не распознан.
При использовании такой команды клиент полагает, что загружаемое содержимое будет соответствовать находящемуся по заданному URI ресурсу. Его сообщения не кэшируются.
Прочие команды
Методы типа GET, а также POST будут рассмотрены более подробно и отдельно. Их структура и применение для обработки данных новичкам не всегда сразу понятна. Перед более глубоким погружением в эти request необходимо рассмотреть прочие команды для работы с HTTP-протоколами, которые встречаются на HTML и PHP:
- DELETE – название говорит само за себя. Операция, которая удаляет указанный ресурс.
- PATCH – работает так же, как и PUT. Отличие заключается в том, что эта операция применяется к части (фрагменту) ресурса.
- TRACE – возвращает полученный request так, что клиент видит, какую информацию промежуточный сервер добавляет или изменяет в процессе обработки команды.
- CONNECT – операция для преобразования соединения в прозрачный TCP/IP-туннель. Используется в основном для установки защищенного SSL-подключения через нешифрованный прокси.
Есть еще Method HEAD. Он напоминает метод GET. HEAD в ответе сервера не предлагает тело. Он применяется для метаданных и их извлечения, проверки наличия ресурса (валидации URL). Помогает уточнять факт изменения с момента последнего обращения к тому или иному объекту.
При работе с HEAD заголовки ответов могут кэшироваться. Если метаданные ресурса не совпадают с соответствующими сведениями из кэша, копия ресурса будет помечена как «устаревшая».
Работа с GET
Чем отличается каждый из рассмотренных запросов, понятно. Теперь можно изучить Method GET, а также POST. Они являются ключевыми в веб-программировании и использовании HTTP-протоколов.
Запрос GET используется для того, чтобы запросить содержимое у выбранного ресурса. с его помощью удается активировать какой-либо процесс. В данном случае необходимо включить информацию о ходе выполнения операции.
Клиент сможет передавать параметры выполнения метода в URI целевого ресурса. они указываются после символа «?» (знак вопроса).
HTTP-стандарт предписывает запросам GET идемпотентный «статус» (он будет рассмотрен позже). Кроме стандартной формы поддерживается:
- Условный GET. Он включает в себя дополнительные заголовки. К ним относят If-Modified-Since, If-Match и другие.
- Частичный метод типа GET. Подразумевает в форме записи наличие Range.
GET – это «получать». Команда, которая необходима для отправки ресурса по почте или иному каналу «доставки». При помощи нее можно запросить (getting) объект.
Данная команда отправляет информацию в URL в виде пар типа «имя-значение». Страница, которая создана с помощью метода GET, может быть открыта повторно бесконечное количество раз. Она кэшируется браузерами, индексируется поисковыми системами и добавляется в закладки пользователями. GETS используются для непосредственного получения ресурсов или информации от сервера. Не рекомендуется тогда, когда используемая команда требует внесения изменений в итоговый ресурс.
Особенности
Позже будут приведены примеры (examples) изучаемых запросов. Чтобы точно понимать, чем GET отличается от «ПОСТ», необходимо знать ключевые особенности каждой команды. «Гет» используется для отправки запроса на получение информации или объекта с URL. Эта операция имеет следующие особенности:
- метод нужен для получения информации с серверной части;
- его использование не влияет на содержимое;
- в теле запроса нет никаких элементов;
- отличается быстрой обработкой на стороне сервера;
- не требует использования вспомогательных ресурсов;
- переменных проходят через заданную адресную строку, что визуально доступно для пользователя – это приводит к тому, что данные не имеют никакой защиты;
- разница с другими методами и запросами заключается в наличии предела объемов информации для передачи (они устанавливаются браузерами);
- используемая кодировка – ASCII;
- можно сохраняться и копировать все содержимое;
- структура и особенности метода делают его доступным для кеширования.
GET requests функционируют по непрерывной связи HTTP. Это соответствует режиму keepAlive на серверной стороне.
Что такое POST
Чтобы хорошо понимать приведенные далее примеры и различия команд для работы с HTTP-протоколами, каждый requested компонент должен быть рассмотрен более подробно. Основные способы оперирования информацией на сервере – это «пост» и «гет». Их сходства и отличия (differences) предстоит изучить каждому веб-программисту.
POST – это «отправить», «опубликовать». Разница в изученных основных командах уже заметна по переводу. Запросы GET – «получать», «Пост» – «отправлять».
POSTING используется для передачи пользовательской информации заданному проекту. Примеры – блоги. В них пользователи могут вводить и отправлять комментарии к записям через HTML-формы.
Выбирая POST VS «ГЕТ», необходимо помнить, что первый метод не является идемпотентным. Многократные отправки «ПОСТ» смогут возвращать разные результаты (example – после отправки комментария будут публиковаться его копии).
При результате обработки 200 (OK) в тело ответа включается сообщение об итоге проведенных операций. Если был создан ресурс, сервер должен вернуть 201 (created), в котором будет указан URI нового сервиса в заголовке Location. Данный метод не кэшируется.
POST переданные данные направляет в тело метода. Он используется тогда, когда на страницу или в объект требуется вносить изменения.
Ключевые моменты в POST
Чтобы структура запросов и сферы их использования были лучше поняты, предстоит рассмотреть особенности и difference POST:
- Цель – vs «ГЕТ». А именно – отправка информации, которая может повлиять на содержимое сервиса.
- Тело метода не является пустым. В нем располагаются сведения, которые должны быть отправлены.
- Скорость работы меньше, чем у «ГЕТ».
- Различия есть и в плане работы с объемом информации. POST дает возможность обрабатывать большие массивы.
- Страница не может быть сохранена или скопирована.
- Поддерживает способность разрыва HTTP-подключения.
Также стоит обратить внимание на то, что передача информации для сервера производится через два пакета TCP. В одном из них – заголовок, в другом – тело с данными.
Идемпотентные методы
Изучая тему «ГЕТ» vs «ПОСТ», необходимо обратить внимание на идемпотентные методы. Это понятие означает на способность некоторых запросов предоставлять одни и те же данные при многочисленной обработке. Если информация обновлена, во внимание она не берется.
Простым языком – это когда при запросе файла по одному и тому же адресу выводится одна и та же информация. Пример – графическое изображение.
Примеры и таблица сравнения
GET и POST используются в CSS, HTML, PHP и других языках. Ниже можно увидеть сравнительную таблицу:
Вот пример GETTING:
После обработки запроса система перейдет на страницу, указанную в первой строке кода. Эта операция равнозначна отправке формы с заданными параметрами.
Выше – пример с POST. Чтобы увидеть переданные сведения, необходимо воспользоваться инструментами разработчика:
Выше – заголовки и тело «команды». В заголовках указаны:
- URL обработчика;
- тип кодирования;
- параметры браузера и иные сведения.
В теле указаны сведения, необходимые для передачи. Его формат может меняться в зависимости от типа кодирования.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!