Статья:

ПРОТОКОЛ ПЕРЕДАЧИ ГИПЕРТЕКСТА

Конференция: CLXXVII Студенческая международная научно-практическая конференция «Молодежный научный форум»

Секция: Технические науки

Выходные данные
Газдиева М.А. ПРОТОКОЛ ПЕРЕДАЧИ ГИПЕРТЕКСТА // Молодежный научный форум: электр. сб. ст. по мат. CLXXVII междунар. студ. науч.-практ. конф. № 26(177). URL: https://nauchforum.ru/archive/MNF_interdisciplinarity/26(177).pdf (дата обращения: 08.12.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 4 голоса
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

ПРОТОКОЛ ПЕРЕДАЧИ ГИПЕРТЕКСТА

Газдиева Мадина Алиевна
студент 4 курса, физико-математический факультет, направление «ИСиТ», Ингушский государственный университет, РФ, г. Магас
Мурзабекова Марем Исмаиловна
научный руководитель, старший преподаватель кафедры ИСиТ ФМФ, Ингушский государственный университет, РФ, г. Магас

 

HYPER TEXT TRANSFER PROTOCOL

 

Madina Gazdieva

Student 4 course, direction "IS&T" of the Faculty of Physics and Mathematics, Ingush State University, Russia, Magas

Marem Murzabekova

Academic Supervisor, Senior Lecturer of the Department of IS&T FMF, Ingush State University, Russia, Magas

 

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

Abstract: This article discusses the principles of http, which it is desirable to know every programmer.

 

Ключевые слова: http, протокол, статус-код, заголовки.

Keywords: http, protocol, status code, headers.

 

Почти все мы сталкивались с аббревиатурой "HTTP" при работе в Интернете. Что означает HTTP? HTTP - это текстовый протокол. Согласно спецификации OSI, HTTP является протоколом прикладного уровня (верхнего, 7-го) уровня.

Протокол - это набор соглашений, правил, на основании которой различные приложения могут обмениваться информацией.

Первоначально HTTP использовался для передачи HTML-документов. Однако теперь он может передавать различные типы контента и данных.

HTTP расшифровывается как Hyper Text Transfer Protocol, «протокол передачи гипертекста».

HTTP работает по модели клиент-сервер. Клиентское приложение генерирует запрос и отправляет его на сервер, после чего серверное программное обеспечение обрабатывает запрос, генерирует ответ и отправляет его обратно клиенту. После этого клиентское приложение по-прежнему может отправлять другие запросы, которые будут обработаны аналогичным образом. Следует отметить, что одна программа может быть одновременно и клиентом и сервером. Общение между клиентом и сервером сводится к обмену сообщениями, причём всегда по принципу «клиент послал запрос — сервер прислал ответ».

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

HTTP-ответы - это сообщения, которые сервер отправляет в ответ на запрос клиента.

В HTTP и запрос, и ответ имеют похожую структуру:

  1. URL
  2. Метод
  3. Версия HTTP
  4. Заголовки
  5. Статус-код (обязательно только для HTTP-ответов)
  6. Тело

Главной составляющей веб-общения является запрос, который отправляется через универсальный указатель ресурсов (URL - Uniform Resource Locator). Он включает в себя сетевой протокол (метод доступа к ресурсу), логин, пароль, хост (DNS адрес), порт (по умолчанию 80) и URL-путь (уточняющая о месте ресурса).

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

Другими словами, методы HTTP - это последовательность всех символов, кроме элемента управления и разделителя, которые указывают на основную активность ресурса.

Методы могут быть безопасными и идемпотентными.

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

Метод HTTP является идемпотентным, когда идентичный запрос, выполняемый один или несколько раз подряд, имеет тот же эффект, не изменяющий состояние сервера.

Методов всего девять: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, CONNECT. Перечислим их.

  • GET – запрашивает содержимое указанного ресурса.
  • POST – применяется для передачи пользовательских данных заданному ресурсу.
  • PUT – загружает указанный ресурс на сервер.
  • OPTIONS – используется для определения возможностей веб-сервера или параметра соединения для конкретного ресурса.
  • HEAD – используется для запроса содержимого указанного ресурса.
  • PATCH – аналогичен PUT, но применяется только к фрагменту ресурса.
  • DELETE – удаляет указанный ресурс.
  • TRACE – возвращает полученный запрос так, что клиент может увидеть, какую информацию промежуточные серверы добавляют или изменяют в запросе.
  • CONNECT – используется вместе с прокси-серверами, которые могут динамически переключаться в туннельный режим SSL.

Что касается версий HTTP, то их всего пять: HTTP/0.9(1990-1992г), HTTP/1.0(1996г), HTTP/1.1(1999г), HTTP/2(2015г), HTTP/3(2019).

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

  1. Заголовки запроса:
  • Host - Используется для указания того, с какого хоста запрашивается ресурс.
  • Cookie - Отправляет куки-файлы, хранящиеся в вашем браузере для этого домена.
  • User-Agent - Используется для идентификации клиента, запрашивающего ресурсы.
  • Accept - Позволяет определить, какие типы медиафайлов принимает клиент.
  • Accept-Language – Обозначает языки, поддерживаемые клиентом.
  • Accept-Charset – Перечень поддерживаемых наборов символов.
  • Referer - Используется для указания того, откуда взялся текущий запрос.
  • Authorization - Требования к базовой авторизации
  1. Заголовки ответа:
  • Server - Содержит информацию о сервере, обработывающем запрос. 
  • Set-Cookie - Содержит файлы cookie, необходимые для идентификации клиента.
  • WWW-Authenticate - информирует клиента о типе проверки подлинности, необходимом для доступа к запрошенному ресурсу.
  • Location — заголовок перенаправления.
  • Content-Disposition — говорит браузеру, скачивать или открывать документ как веб-страницу
  • Content-Type — тип и подтип содержимого, а также кодировка и приложение для открытия содержимого.

Статус-код - это целое трёхразрядное десятичное число. Первая цифра указывает на класс состояния. За кодом ответа обычно следует пояснительная фраза на английском языке, отделённая пробелом, которая объясняет человеку причину такого ответа.

Выделяют несколько категорий кодов:

  • 1хх – в эту категорию выделены коды, информирующие о процессе передачи
  • 2хх – эта категория информирует о случаях успешного принятия и обработки запроса клиента.
  • 3хх – в данной категории содержатся коды, которые возвращаются, если серверу нужно перенаправить клиента.
  • 4хх – коды из этой категории приходят если есть ошибка клиента.
  • 5хх – если есть ошибка сервера, то из этой категории.

Самые распространенные:

  • 200 – Запрос был успешно обработан (Ок).
  • 302 - Перенаправляет клиента на другой URL.
  • 400 – Запрос не был понят сервером из-за его неверного синтаксиса.
  • 401 – Запрос требует авторизации доступа.
  • 403 – Сервер понял запрос, но отказался его принять.
  • 404 – Ресурс, заданный в URL запроса, не найден.
  • 500 - Запрос не исполнен из-за неожиданной ошибки сервера.
  • 502 - Означает, что один сервер получил неверный ответ от другого.
  • 503 – Сервер временно не может исполнить запрос из-за перегрузки.

Тело HTTP сообщения необязательная составляющая HTTP сообщения. Оно используется для передачи тела объекта запроса или тела объекта ответа.

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

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

Пример запроса и ответа HTTP:

Здесь с помощью протокола telnet мы установили TCP-соединение с сервером, который DNS идентифицировал как httpbin.org на 80-м порту.

В стартовой строке мы указали метод запроса, цель запроса (URL) и версию протокола.

Затем с помощью заголовок сообщили серверу некоторые параметры.

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

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

Знание HTTP нужно при работе с формами, при загрузке файлов, при кешировании, для обеспечения безопасности и для много чего другого. HTTP нужно не просто знать, но и уметь делать простые HTTP-запросы.

 

Список литературы:
1. https://flagstudio.ru/blog/http-metody-status-cody-zagolovky
2. https://webkyrs.info/post/http-zapros-metodom-get
3. https://habr.com/ru/post/215117/
4. https://developer.mozilla.org/ru/docs/Web/HTTP/Messages
5. https://code.tutsplus.com/ru/tutorials/http-the-protocol-every-web-developer-must-know-part-1--net-31177