MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

Что такое веб-сервер

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

В этой статье мы узнаем, что из себя представляют веб-серверы, как они работают, и почему они так важны.

Необходимые
знания:
Вы должны знать, как работает Интернет и понимать разницу между страницей, сайтом, сервером и поисковой системой.
Цель:

Вы узнаете, что такое веб-сервер и получите общее представление о том, как он работает.

Введение

Понятие "Веб-сервер" может относится как к железу так и к программному обеспечению.

  1. С точки зрения железа, `Веб-сервер` это компьютер который хранит ресурсы сайта (HTML документы, CSS стили, JavaScript файлы и другое) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Обычно подключен к сети Интернет и может быть доступен через, доменное имя, например mozilla.org. mozilla.org.
  2. С точки зрения ПО, Веб-сервер включает в себя некоторые вещи, которые контролируют доступ Веб-пользователей к размещенным на сервере файлам, это минимум HTTP сервера. HTTP сервер это часть ПО которая понимает URL’ы (веб-адреса) и HTTP (протокол который использует ваш браузер для просмотра веб-станиц).

Простыми словами, когда браузеру нужен файл размещенный на веб-сервере, браузер запрашивает его через HTTP. Когда запрос достигает нужного веб-сервера (железо), сервер HTTP (ПО) передает запрашиваемый документ обратно, также через HTTP.

Basic representation of a client/server connection through HTTP

Чтобы опубликовать веб-сайт, нужно либо статический, либо динамический веб-сервер.

Статический веб-сервер, или стек, состоит из компьютера (железо) с сервером HTTP (ПО). Мы называем это “статикой”, потому что сервер посылает размещенные на нем файлы в браузер “как есть”..

Динамических веб-сервер состоит из статического веб-сервера плюс дополнительного программного обеспечения, наиболее часто сервером приложений и базы данных. Мы называем его “динамический”, потому что сервер приложений изменяет исходные файлы перед отправкой в ваш браузер по HTTP.

Например, для получения итоговой страницы, которую вы видите в браузере, сервер приложений может заполнить HTML шаблон данными из базы данных. Такие сайты, как MDN (Mozilla Developer Network) или Википедия состоят из тысяч веб-страниц, но они не являются реальными HTML документами, лишь несколько HTML шаблонов и гигантские базы данных. Эта структура упрощает и ускоряет сопровождение веб-приложений и доставку контента.

Активное изучение

Активное изучение пока не доступно. Пожалуйста, рассмотрите возможность внести свой вклад.

Более детально

Чтобы загрузить веб-страницу, как мы уже говорили, ваш браузер отправляет запрос к веб-серверу, который приступает к поиску запрашиваемого файла в своем собственном пространстве памяти. Найдя файл, сервер считывает его, обрабатывает как ему это необходимо, и направляет его в браузер. Давайте посмотрим на эти шаги более подробно.

Хостинг файлов

Во-первых, веб-сервер хранит файлы веб-сайта, а именно все HTML документы и связанные с ними ресурсы, включая изображения, CSS стили, JavaScript файлы, шрифты и видео.

Технически, вы можете разместить все эти файлы на своем компьютере, но гораздо удобнее хранить их на выделенном веб-сервере, который:

  • всегда запущен и работает
  • постоянно в сети Интернет
  • имеет то же IP адрес все время (не все провайдеры предоставляют статический IP адрес для домашнего подключения)
  • обслуживается на стороне

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

Когда вы решили проблему с хостингом, вам нужно всего лишь загрузить свои файлы на ваш веб-сервер.

Связь по HTTP

Во-вторых, веб-сервер обеспечивает поддержку HTTP (hypertext transfer protocol). Как следует из названия, HTTP указывает, как передавать гипертекст (т.е. связанные веб-документы) между двумя компьютерами.

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

Текстовый
Все команды являются простым текстом и человекочитаемые.
Не сохраняет состояние
Ни клиент, ни сервер, не помнят о предыдущих соединениях. Например, опираясь только на HTTP, сервер не сможет вспомнить введенный вами пароль или на каком шаге транзакции вы находитесь. Для таких задач, вам потребуется сервер приложений.

HTTP задает строгие правила, как клиент и сервер должны общаться. Мы рассмотрим непосредственно HTTP далее в техническом разделе. Вот некоторые из них:

  • Только клиенты могут отправлять HTTP запросы, и только на сервера. Сервера отвечают только на HTTP запросы клиента.
  • Когда запрашивается физический файл, клиент должен сформировать file URL URL.
  • Веб-сервер должен ответить на каждый HTTP запрос, по крайней мере с сообщением об ошибке.

The MDN 404 page as an example of such error pageНа веб-сервере, HTTP сервер отвечает за обработку входящих запросов и ответ на них.

  1. При получении запроса, HTTP сервер сначала проверяет существует ли ресурс по данному URL.
  2. Если это так, веб-сервер отправляет содержимое файла обратно в браузер. Если нет, сервер приложений создает необходимый ресурс.
  3. Если это не возможно, веб-сервер возвращает сообщение об ошибке в браузер, чаще всего “404 Not Found”. (Это ошибка настолько распространена, что многие веб-дизайнеры тратят большое количество времени на разработку 404 страниц об ошибках.)

Статика vs Динамика

Грубо говоря, сервер может отдавать статическое или динамическое содержимое. “Статическое” означает “отдается как есть”. Статические веб-сайты проще всего установить, поэтому мы предлагаем вам сделать свой первый сайт статическим.

“Динамическое” означает, что сервер обрабатывает данные или даже генерирует их на лету из базы данных. Это обеспечивает больше гибкости, но технически сложнее в обслуживании, что делает его более сложным для создания веб-сайта.

Возьмем к примеру страницу которую вы сейчас читаете. На веб-сервере где это хостится, есть сервер приложений, который извлекает содержимое статьи из базы данных, форматирует его, добавляет в HTML шаблоны и отправляет вам результат. В нашем случае, сервер приложений называется Kuma, написан он на языке программирования Python (используя фреймворк Django). Команда Mozilla создали Kuma для конкретных нужд MDN, но есть много подобных приложений, построенных на многих других технологий.

Существует так много серверов приложений, что довольно трудно предложить какой-то один. Некоторые серверы приложений удовлетворяют определенной категории веб-сайтов, такие как блоги, вики или интернет-магазины; другие, называемые CMSs (системы управления контентом), являются более общими. Если вы создаете динамический сайт, потратьте немного времени на выбор инструмента, который соответствует вашим потребностям. Если вы не хотите изучать веб-программирование (хотя это захватывающая область сама по себе!), то вам не нужно создавать свой собственный сервер приложений. Это будет очередной велосипед.

Следующие шаги

Теперь, когда вы познакомились с веб-серверами, вы можете:

 
 

Метки документа и участники

 Внесли вклад в эту страницу: talgautb, Xryak, uralbash, elcamlost
 Обновлялась последний раз: talgautb,