Добавить в корзинуПозвонить
Найти в Дзене
IT & Dev

Протокол HTTP

В этой статье рассмотрим HTTP (HyperText Transfer Protocol) или протокол передачи гипертекста, узнаем что это такое, из чего состоит запрос и напишем HTTP запросы к веб-ресурсам. HTTP это протокол прикладного уровня для передачи данных по сети (например гипертекста, аудио, видео, изображения). HTTP определяет набор правил и формат обмена данными между клиентом (ваш браузер) и сервером на котором находится веб-ресурс. Классическая модель: запрос → ответ. Клиент всегда инициатор, где клиент это ваш браузер. Пример: Запрос: GET /page HTTP/1.1 Host: example.com Ответ: HTTP/1.1 200 OK Content-Type: text/html <html>... Запрос (Request) Ответ (Response) Статус коды это дополнительная информация о состоянии запроса. Существуют следующие статус коды: 1xx — информационные коды, например запрос получен или продолжается. 2xx — информируют об успешном выполнении запроса. 3xx — информация о перенаправлении (Redirect). 4xx — информируют об ошибках на стороне клиента. 5xx — информируют об ошибках на с
Оглавление

Введение

HTTP (HyperText Transfer Protocol)
HTTP (HyperText Transfer Protocol)

В этой статье рассмотрим HTTP (HyperText Transfer Protocol) или протокол передачи гипертекста, узнаем что это такое, из чего состоит запрос и напишем HTTP запросы к веб-ресурсам.

Что такое HTTP?

HTTP это протокол прикладного уровня для передачи данных по сети (например гипертекста, аудио, видео, изображения).

HTTP определяет набор правил и формат обмена данными между клиентом (ваш браузер) и сервером на котором находится веб-ресурс.

Принцип работы

  1. Клиент отправляет запрос (request) — например, хочет получить index.html.
  2. Сервер обрабатывает запрос и отправляет ответ (response) с данными и статусом.
  3. Соединение закрывается (или сохраняется для следующих запросов в HTTP/1.1+).

Классическая модель: запрос → ответ. Клиент всегда инициатор, где клиент это ваш браузер.

Пример:

Запрос:

GET /page HTTP/1.1

Host: example.com

Ответ:

HTTP/1.1 200 OK

Content-Type: text/html

<html>...

Структура

Запрос (Request)

  • Стартовая строка: метод (GET, POST и др.), URI, версия HTTP.
  • Заголовки (Headers): Host, User-Agent, Content-Type и др.
  • Тело (Body) — для POST, PUT и т.д.

Ответ (Response)

  • Стартовая строка: версия HTTP, код статуса (200, 404, 500), пояснение.
  • Заголовки: Content-Type, Content-Length, Set-Cookie.
  • Тело — запрошенные данные (HTML, картинка, JSON).

Статус коды это дополнительная информация о состоянии запроса.

Существуют следующие статус коды:

Статус коды HTTP
Статус коды HTTP

1xx — информационные коды, например запрос получен или продолжается.

2xx — информируют об успешном выполнении запроса.

3xx — информация о перенаправлении (Redirect).

4xx — информируют об ошибках на стороне клиента.

5xx — информируют об ошибках на сервере.

Методы запроса HTTP:

Методы запроса HTTP
Методы запроса HTTP

Методы запроса определяют семантику запросов к данным. Если мы хотим получить данные используем GET, отправить POST, обновить PUT, удалить DELETE и т.д.

Версии

Версии протокола HTTP
Версии протокола HTTP

Безопасность

Сам HTTP передаёт данные в открытом виде (текст). Это опасно для паролей, банковских карт и т.п.

Решением было модифицировать протокол HTTP, сделать его более безопасным. HTTPS (HyperText Transfer Protocol Secure) = HTTP + TLS/SSL (шифрование, аутентификация сервера, целостность данных)

Практика

Разделю практику на две части, в первой части будем пользоваться командной строкой, во второй части Postman.

Часть 1

Для того чтобы отправить HTTP-запрос на веб-ресурс воспользуемся командой curl.

curl — это консольная утилита для отправки HTTP (и других) запросов. Ниже — основные примеры.

Отправим запрос curl с флагом -i для того, чтобы получить заголовки и документ HTML.

curl -i
curl -i

Часть 2

Postman — глобальная компания, предоставляющая платформу API для разработчиков. Предназначена для проектирования, создания, тестирования и совместной работы над API. С помощью программы Postman мы сможем отправлять запросы к веб-ресурсам.

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

Например получим справочник всех отраслей

Postman
Postman

Для этого выбираем метод GET, вводим URL и нажимаем отправить. Для API hh.ru обязательно установить заголовок HH-User-Agent и указать Auth Type No Auth.

В результате получаем ответ в формате JSON.

Итог

  • HTTP — фундамент общения клиента и сервера в вебе.
  • Клиент отправляет запрос → сервер отвечает.
  • Эволюционировал от простейшего HTTP/0.9 до высокопроизводительных HTTP/2 и HTTP/3.
  • Без HTTPS — небезопасен (данные перехватываются).
  • Понимание HTTP помогает отлаживать API, настраивать веб-серверы, оптимизировать загрузку сайтов и обеспечивать безопасность.