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. В нём мы передаём конкретные данные для уточнения запроса.
Тело запроса содержит информацию, которую мы хотим отправить на сервер. В данном случае это параметры для получения прогноза погоды: город, страна, единицы измерения и список запрашиваемых данных (температура, влажность, ветер).
Такой формат позволяет чётко и структурированно передавать информацию от клиента к серверу.