Files
Info/2 курс/Веб-программирование/Общие стандарты и протоколы сети Интернет.md
T
LeterZP 1d8c819656 init
2026-09-17 22:04:07 +03:00

8.4 KiB

Содержание

Введение

В основном все держится на 4 вещах:

  • Hypertext Transfer Protocol (HTTP) - предназначен для передачи гипертекста между клиентом и сервером
  • Hypertext Markup Language (HTML) - язык разметки гипертекста
  • Cascade StyleSheets (CSS) - язык описания внешнего вида HTML-документов
  • JavaScript - язык для написания динамических сценариев, выполняемых на стороне клиента

Клиент-серверное взаимодействие. Протокол HTTP.

HTTP

Сам по себе HTTP - протокол прикладного уровня. В его основе лежит технология "клиент-сервер". Он может использоваться в качестве "транспорта" для других протоколов прикладного уровня. Основной объект манипуляций этого протокола - ресурс, на который указывает URI. Обмен сообщениями в этом протоколе идет по схеме "запрос-ответ". Сам по себе протокол не сохраняет состояние (stateless-протокол), поэтому для реализации сессий используется cookies.

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

Первая строка запроса HTTP является стартовой, в ней содержится основное описание необходимого действия (команда). При ее составлении через пробел указывают три основные для протокола вещи: метод, URI и версию протокола HTTP (в формате HTTP/Версия).

За первой строкой следует следующий раздел - заголовки. Этот раздел содержит, как ни странно, заголовки.

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

Структура ответа HTTP

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

Методы HTTP

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

  • OPTIONS - определение возможностей сервера
  • GET - получение данных с ресурса (запрос содержимого ресурса)
  • HEAD - аналог GET, но в ответе не передается (отсутствует) тело
  • POST - передача данных ресурсу
  • PUT - загрузка содержимого запроса на указанный URI
  • DELETE - удаление данных с сервера

Коды состояния

Коды состояния в основном состоят из трёх цифр. Все коды состояния делятся на 5 классов, в соответствии с которыми ставится первая цифра кода.

  • 1 - Informational - информационный
  • 2 - Success - успешно
  • 3 - Redirection - перенаправление
  • 4 - Client error - ошибка клиента
  • 5 - Server error - ошибка сервера

Заголовки HTTP

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

Заголовки делятся на 4 группы:

  • General Headers - могут включаться в любое сообщение клиента и сервера
  • Request Headers - используется только в запросах клиента
  • Response Headers - используется только в запросах сервера
  • Entity Headers - сопровождают любую сущность сообщения

URI, URN и URL

URI (Uniform Resource Identifier) - уникальный идентификатор ресурса - символьная строка, позволяющая идентифицировать ресурс. Строится по форме <схема>:<идентификатор>. Идентификатор определяется в зависимости от схемы.

URL (Uniform Resource Locator) - URI, позволяющий определить местоположение ресурса. Может представлять из себя абсолютную ссылку (https://), относительную ссылку (../task.html) и тп.

URN (Uniform Resource Name) - URI, содержащий единообразное имя ресурса (не указывает на его местонахождение). Строится по способу, подобному URI, но начинается с urn, и только после него идет уже сама схема с идентификатором.

REST

REST (Representation State Transformer) - передача состояния представления - подход к архитектуре сетевых протоколов, обеспечивающих доступ к информационным ресурсам. Он описывает взаимодействие между клиентом и сервером, а также между front-end и back-end частями.

Основные концепции REST:

  • данные должны передаваться в виде небольшого числа стандартных форматов (к примеру, HTML, XML, JSON)
  • сетевой протокол должен поддерживать кеширование, не должен зависеть от сетевого слоя, не должен сохранять информацию о состоянии между парами "запрос-ответ"

Существует подход, противоположный REST, который основан на вызове удаленных процедур (RPC - Remote Process Call).