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

Понятие веб-сервера может относиться как к оборудованию, так и к программному обеспечению (программному обеспечению).

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

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

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

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

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

Серверы приложений для Python

  • CherryPy
  • Гуникорн
  • uWSGI
  • Официант
  • Торнадо
  • Werkzeug

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

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

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

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

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

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

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

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

Связь по HTTP¶

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

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

Текст

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

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

HTTP устанавливает строгие правила того, как клиент и сервер должны взаимодействовать. Для получения дополнительной информации см протокол http. Вот некоторые из них:

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

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

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

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

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

Грубо говоря, сервер может обслуживать статический или динамический контент.

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

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

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

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

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

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

© Copyright 2020, Кафедра интеллектуальных информационных технологий, Уральский федеральный университет. Сделано с помощью Sphinx 1.7.6.