В этой статье мы узнаем о HTTP-серверах, о том, как они работают и как создать свои собственные.

Давайте сначала разберемся с модальным интерфейсом клиент-сервер.

Модель клиент-сервер — это фундаментальная архитектура для проектирования и реализации сетевых приложений и сервисов. В этой модели компьютеры делятся на две категории: клиенты и серверы. Вот обзор каждого из них:

  1. Клиент. Клиент – это компьютер или устройство, которое запрашивает услуги или ресурсы у другого компьютера, называемого сервером. Они инициируют связь, отправляя запросы на серверы, а затем ждут ответов.
  2. Сервер. Сервер – это мощный компьютер или программное приложение, которое предоставляет клиентам услуги или ресурсы. Серверы отвечают на запросы клиентов, обрабатывая запросы и отправляя обратно запрошенные данные или выполняя запрошенные задачи.

Что такое HTTP-серверы?

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

Вот некоторые ключевые особенности и аспекты HTTP:

  1. Модель клиент-сервер. В контексте Интернета HTTP работает по модели клиент-сервер. Клиент, обычно веб-браузер, отправляет серверу запросы на ресурсы, а сервер отвечает запрошенными данными.
  2. Протокол без сохранения состояния. HTTP – это протокол без сохранения состояния. Это означает, что каждый запрос от клиента к серверу рассматривается как независимая транзакция без какой-либо памяти о предыдущих запросах.
  3. Цикл запрос-ответ. HTTP-транзакция включает в себя два основных компонента: запрос и ответ. Клиент отправляет HTTP-запрос на сервер, указывая метод (например, GET, POST и т. д.), путь к ресурсу и другие заголовки. Сервер обрабатывает запрос и отправляет обратно HTTP-ответ, содержащий запрошенные данные или сообщение об ошибке.
  4. Методы. HTTP определяет различные методы, указывающие тип запрашиваемого действия. Наиболее распространенные методы включают GET (извлечение данных), POST (отправка данных для обработки), PUT (обновление ресурса), DELETE (удаление ресурса) и другие.
  5. Коды состояния. Ответы HTTP включают коды состояния, указывающие результат запроса. Например, код состояния 200 указывает на успех, коды типа 404 указывают на ошибку «Не найдено», а код 500 указывает на ошибку сервера.
  6. Заголовки. И запросы, и ответы содержат заголовки, которые представляют собой пары ключ-значение, предоставляющие дополнительную информацию о передаваемых данных. Заголовки могут включать информацию о типе контента, кэшировании, аутентификации и т. д.
  7. URL: унифицированные указатели ресурсов (URL) используются для указания адреса ресурса в Интернете. URL-адреса включают протокол (например, «http» или «https»), имя домена, путь к ресурсу и параметры запроса.
  8. Безопасная версия (HTTPS): HTTPS (безопасный протокол передачи гипертекста) – это расширение HTTP, добавляющее уровень шифрования с использованием протоколов SSL/TLS. Он обеспечивает безопасную и зашифрованную связь между клиентом и сервером.

Как создать HTTP-сервер с помощью NodeJs?

Убедитесь, что у вас установлен Node. Создайте пустую папку для своего проекта, откройте терминал, перейдя к вашему проекту, и выполните команду ниже.

npm init -y

Команда npm init -y используется для инициализации нового проекта Node.js и создания файла package.json со значениями по умолчанию без запроса какой-либо информации.

Теперь установите экспресс, используя команду ниже

npm install express

Express — это популярная платформа веб-приложений для Node.js, среда выполнения, позволяющая запускать код JavaScript на стороне сервера. Express упрощает процесс создания веб-приложений и API, предоставляя набор функций и инструментов, которые упрощают выполнение общих задач, таких как маршрутизация, управление промежуточным программным обеспечением и обработка HTTP-запросов и ответов.

Создайте файл index.js в своей папке.

  1. Импортный экспресс.
const express = require("express");

Эта строка импортирует библиотеку Express.js — популярную платформу для создания веб-приложений и API в Node.js.

2. Создайте экспресс-приложение.

const app = express();

Здесь вы создаете экземпляр приложения Express, вызывая функцию express(). Этот объект app представляет ваше веб-приложение.

3. Определите номер порта.

const port = 3000

Вы указываете номер порта (в данном случае 3000), на котором ваш веб-сервер будет прослушивать входящие запросы.

4. Определите обработчик маршрута для корневого URL-адреса («/»).

app.get('/', (req, res) => {
  res.send('Hello World!')
})

Этот код устанавливает обработчик маршрута для запросов HTTP GET к корневому URL-адресу («/»). Когда клиент отправляет запрос GET к «/», выполняется предоставленная функция обратного вызова. Он отправляет ответ «Hello World!» обратно клиенту с помощью метода res.send().

5. Запустите сервер Express и прослушивайте определенный порт.

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

Этот код запускает сервер Express и сообщает ему прослушивать порт, указанный ранее (3000). При успешном запуске сервера он выводит на консоль сообщение, указывающее, что он прослушивает указанный порт.

6. Наконец, запустите приложение, выполнив следующую команду (где находится ваш файл yourfilename.js).

node yourfilename.js

Итак, когда вы запускаете этот код, он создает простой веб-сервер, который отвечает Hello World! когда вы получаете доступ к корневому URL-адресу (http://localhost:3000/) в своем веб-браузере. Сервер работает непрерывно и прослушивает входящие HTTP-запросы через порт 3000.

Спасибо, что читаете.
Пожалуйста, прокомментируйте свои сомнения, будем рады их разрешить.

Ссылки
Linkedin: https://www.linkedin.com/in/rushikesh-gandhmal/
Github: https:// github.com/RushikeshGandhmal
Twitter: https://twitter.com/rushikesh1s