HTTP протокол

Это важная и обязательная часть знаний для работы с n8n.

HTTP (Hypertext Transfer Protocol) — это протокол, который используется для передачи данных в интернете. Он позволяет системам обмениваться информацией.

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

HTTP (HyperText Transfer Protocol) создан специально для того, чтобы передавать данные между сервисами.

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

Что именно определяет HTTP

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

Он задаёт:

  • структуру запроса: как именно клиент должен обращаться к серверу;
  • формат ответа: как сервер должен вернуть данные;
  • методы запроса: какие действия можно выполнить (получить, отправить, обновить, удалить);
  • статусы ответа: как понять, успешно ли прошёл запрос или произошла ошибка;
  • заголовки: какие дополнительные сведения передаются вместе с запросом и ответом (например, тип данных, язык, авторизация и др.).

HTTP не передаёт данные напрямую — этим занимается более низкий уровень (например, TCP). HTTP лишь описывает, как упаковать и прочитать содержимое сообщения, чтобы обе стороны точно поняли друг друга.

Как выглядит HTTP-запрос

Когда один сервис хочет что-то получить от другого, он отправляет HTTP-запрос.

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

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

POST /weather/request HTTP/1.1
Host: api.weather.com
Content-Type: application/json
Authorization: Bearer abc123
User-Agent: MyWeatherApp/1.0
Accept: application/json

{
  "location": {
    "city": "Boston",
    "country": "USA"
  },
  "units": "imperial",
  "include": ["temperature", "humidity", "wind"]
}

Что здесь происходит:

  • POST — метод запроса. Мы не просто хотим получить данные, а отправляем информацию (например, параметры запроса).
  • /weather/request — путь на сервере, к которому обращается клиент.
  • HTTP/1.1 — версия протокола.
  • Host: api.weather.com — адрес сервиса, на который отправляется запрос.
  • Content-Type: application/json — мы говорим серверу, что тело запроса будет в формате JSON.
  • Authorization: Bearer abc123 — заголовок с токеном доступа. Такой заголовок нужен для авторизации.
  • User-Agent: MyWeatherClient/1.0 — информация о том, какая программа отправляет запрос.
  • Accept: application/json — мы просим сервер вернуть данные в формате JSON.

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

Тело запроса содержит информацию, которую мы хотим отправить на сервер. В данном случае это параметры для получения прогноза погоды: город, страна, единицы измерения и список запрашиваемых данных (температура, влажность, ветер).

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