> Что такое протокол HTTP и как он работает (JavaScript)

Уровень: junior · Роль: frontend · Язык: JavaScript · Категория: Технические вопросы

Компании: QueenInteractiveGamesLtd

Стек: Node.js, JavaScript

> Пример ответа

HTTP (HyperText Transfer Protocol) - это протокол прикладного уровня, используемый для передачи гипертекстовых документов (например, HTML) в вебе. Он работает по модели "клиент-сервер": клиент (браузер или Node.js-приложение) отправляет запрос серверу, а сервер возвращает ответ.

Как работает HTTP:

  1. Установка соединения: Клиент открывает TCP-соединение с сервером (обычно через порт 80 для HTTP или 443 для HTTPS). В Node.js это часто делается с помощью модуля http или https.

  2. Формирование запроса: Клиент отправляет HTTP-запрос, который состоит из:

    • Строки запроса (метод, URI, версия HTTP), например: GET /api/users HTTP/1.1

    • Заголовков (метаданные, такие как Content-Type, Authorization)

    • Тела (опционально, для POST/PUT запросов)

    Пример в Node.js:

    JAVASCRIPT
    const http = require('http');
    const options = {
    hostname: 'example.com',
    port: 80,
    path: '/data',
    method: 'GET'
    };
    const req = http.request(options, (res) => {
    // обработка ответа
    });
    req.end();
  3. Обработка сервером: Сервер принимает запрос, обрабатывает его (например, извлекает данные из БД) и формирует ответ.

  4. Ответ сервера: Ответ включает:

    • Строку статуса (код и сообщение), например: HTTP/1.1 200 OK

    • Заголовки (например, Content-Type: application/json)

    • Тело (например, JSON-данные)

    Пример обработки на сервере в Node.js:

    JAVASCRIPT
    const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello, World!');
    });
    server.listen(3000);
  5. Закрытие соединения: В HTTP/1.1 соединение по умолчанию не закрывается (keep-alive), но в HTTP/1.0 оно закрывалось после каждого ответа. HTTP/2 и HTTP/3 используют мультиплексирование для повышения производительности.

Ключевые методы HTTP:

  • GET - получение данных

  • POST - создание ресурса

  • PUT - обновление

  • DELETE - удаление

Безопасность: HTTPS (HTTP over TLS) шифрует данные, что критично для современных веб-приложений. В Node.js для этого используется модуль https.

Таким образом, HTTP - это основа обмена данными в вебе, работающая через запросы и ответы, а Node.js предоставляет удобные инструменты для реализации как клиентской, так и серверной части.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью