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

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

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

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

Введение

Термин «веб-сервер» может относиться как к аппаратному, так и к программному обеспечению. Или даже обе части работают вместе.

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

На самом базовом уровне, когда браузеру нужен файл, размещенный на веб-сервере, он запрашивает его по протоколу HTTP. Когда запрос достигает реального веб-сервера («аппаратного обеспечения»), HTTP-сервер (программное обеспечение) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке 404) и отправляет его обратно, также по протоколу HTTP.

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

Статический веб-сервер, или стек, состоит из компьютера («аппаратное обеспечение») с HTTP-сервером (программное обеспечение). Он называется «статическим», потому что сервер отправляет размещенные файлы браузеру «как есть».

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

Что такое Web-сервер?

Например, для создания конечной страницы, которую пользователь просматривает в браузере, сервер приложений может заполнить шаблон HTML данными из базы данных. Такие сайты, как MDN или Wikipedia, состоят из тысяч веб-страниц, но они не являются настоящими HTML-документами — это просто несколько HTML-шаблонов и гигантская база данных. Такая структура упрощает и ускоряет обслуживание веб-приложений и доставку контента.

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

Погружаемся глубже

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

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

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

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

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

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

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

Что такое веб сервер и для чего он нужен?

Связь по HTTP

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

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

Текст

Все команды представляют собой простой человекочитаемый текст.

Нет сохраненного состояния

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

Протокол HTTP устанавливает строгие правила для взаимодействия клиента и сервера. Сам протокол HTTP мы рассмотрим в технической статье чуть позже. На данный момент достаточно знать об этих правилах:

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

Страница MDN 404 как пример такой страницы ошибок

На веб-сервере HTTP-сервер отвечает за обработку и ответ на входящие запросы.

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

Статический и Динамический контент

Грубо говоря, сервер может отображать статический или динамический контент. ‘Статический’ означает «представленный как есть». Статические сайты легче всего создавать, поэтому мы советуем, чтобы ваш первый сайт был статическим.

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

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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями: