Интернет потрясающий, я думаю, что мы все можем согласиться с этим. Но вы когда-нибудь садились и думали, как веб-сайт действительно попадает на ваш компьютер? Какие технологии стоят за MakeUseOf, например? Это намного больше, чем просто коллекция HTML-файлов и изображений.
Читайте дальше, чтобы узнать, что именно входит в работу, хостинг и обслуживание веб-сайта для вашего потребления, дорогие читатели.
аппаратные средства
Давайте начнем с самого основного компонента хостинга веб-сайта — аппаратного обеспечения. По сути, машины, используемые для размещения веб-сайта, на самом деле ничем не отличаются от настольных ПК, которые у вас или у меня дома. У них больше памяти, резервных дисков и часто волоконно-оптических сетевых соединений — но в основном они одинаковые. Фактически, любая старая машина может разместить веб-сайт — это всего лишь пример того, как быстро она сможет отправлять страницы пользователям.
Вы можете прочитать больше здесь о различных видах хостинга.
доступный, от одной машины, используемой тысячами веб-сайтов, каждый из которых платит по 5 долларов в месяц, до полностью выделенного сервера, способного выполнять что-то вроде MakeUseOf — что стоит тысячи долларов в месяц

Операционная система
Большинство машин с веб-серверами работают под управлением оптимизированной версии Linux — хотя существует множество серверов под управлением Windows, обычно в корпоративных средах, где веб-приложения построены на ASP или dotNet. По состоянию на январь этого года самым популярным дистрибутивом Linux для веб-хостинга является Debian, за которым следует CentOS (на основе RedHat), оба из которых можно бесплатно загрузить и опробовать самостоятельно — в каждом из них, по сообщениям, размещено около 30% всех веб-сайты. Google, конечно, использует свой собственный Linux, а также собственную файловую систему.
Программное обеспечение веб-сервера
Здесь вещи действительно начинают дифференцироваться. Программное обеспечение веб-сервера — это приложение, которое получает входящие запросы и обслуживает страницы или файлы. Само программное обеспечение веб-сервера в значительной степени не зависит от языка веб-страницы, которую оно обслуживает — сервер Apache вполне способен обслуживать Python, PHP, Ruby или любое количество различных языков; но это не универсально. Текущая доля рынка показывает, что Apache работает около 65% ведущих веб-сайтов, Microsoft IIS 15% и nginx 10%. Считается, что nginx лучше справляется с сайтами с высокой степенью параллелизма, то есть когда на сайт могут одновременно заходить многие тысячи пользователей, и фактически используется здесь, в MakeUseOf.

Когда вы загружаете сайт, вы открываете сокет — соединение — между вашим компьютером и сервером сайта. Сложный и длительный танец под HTTP-мелодию начинается с передачи запросов, данных и кодов состояния. Когда вы запросили эту страницу, наш сервер ответил 200 — ОК, что означает «конечно, иди»; если вы заходили раньше, ваш браузер мог бы также спросить «эй, у меня есть копия этой графики уже в моем кеше браузера, она мне действительно нужна снова?», на что наш сервер ответил 304 — не модифицировано, или «нет, это круто, мы не изменили это или что-то еще, просто используйте это».
Иногда вы найдете страшных 404 Не Найдено, но мне не нужно объяснять вам этот код ошибки. Если вы когда-либо открывали Firebug
или в режиме разработчика вашего браузера, вы будете удивлены, увидев, сколько вперед и назад идет — это не просто «дай мне эту страницу» — «ОК, здесь», а на самом деле сотни небольших взаимодействий.

Статические файлы Сети доставки контента
На всех сайтах есть файлы, которые почти никогда не меняются. Такие вещи, как Javascripts, CSS, изображения, PDF или mp3. Это так называемые статические файлы, и для их обслуживания программное обеспечение веб-сервера просто должно захватить файл и отправить его. Легко, правда? Не так быстро.
К сожалению, отправка большого количества статических файлов является довольно трудоемкой задачей из-за размера файлов. Если вы когда-либо посещали веб-страницу, где вы можете сидеть и наблюдать за загрузкой изображений, то это потому, что веб-сервер сам выбирает эти файлы — они просто не оптимизированы для такой работы. Вместо этого большие сайты выгружают все эти статические файлы на то, что называется Сеть доставки контента — отдельные серверы, которые оптимизированы для обслуживания статических файлов смехотворно быстро в мгновение ока.
Они также достигают этого, физически размещая серверы в разных точках мира, которые зеркально отражают друг друга, поэтому для передачи данных вам не требуется большое расстояние. Прямо сейчас, даже несмотря на то, что статья MakeUseOf, которую вы читаете, на самом деле размещена в Соединенных Штатах, изображения и Javascript приходят откуда-то гораздо ближе к вам через местный CDN.
Динамический контент — языки веб-программирования
Почти все современные веб-сайты имеют какое-то динамическое содержимое, будь то WordPress, добавляющий комментарии к сообщению в блоге, или Google, отображающий результаты поиска. Чтобы сделать веб-страницу динамичной, нужны языки веб-программирования. Я писал ранее о различных языках, доступных для вас
(и вступил в некоторые горячие споры о том, что PHP был лучшим). Какой бы язык вы ни выбрали, он работает в сочетании с программным уровнем веб-сервера, чтобы сначала динамически генерировать содержимое страницы, а затем предоставлять его вам.
Базы данных
За всеми динамическими веб-сайтами стоят базы данных — огромные хранилища необработанных данных, которые позволяют нам получать доступ к этим данным различными способами. Для этого требуется отдельный язык программирования баз данных, наиболее популярным из которых является SQL (язык структурированных запросов) и его множество вариантов. Базы данных содержат разные таблицы данных для представления различных структур данных — одна может быть списком статей; еще один для комментариев к этим статьям. Используя SQL, мы можем сортировать, комбинировать и представлять эти данные различными способами.
Например, в WordPress «пост» состоит как минимум из заголовка и даты и, возможно, некоторого фактического содержания. Отдельная таблица используется для хранения комментариев к этой статье, а еще одна таблица для хранения списка категорий, а затем еще одна таблица для хранения списка категорий, которые были назначены для данной статьи. Путем перекрестных ссылок и извлечения данных из всех них WordPress собирает вместе всю необходимую информацию для конкретной страницы вашего блога, прежде чем применять тему и представлять ее вам через программное обеспечение веб-сервера.

Системы кеширования
Обслуживание статических HTML-файлов довольно легко с точки зрения вычислений — серверу просто нужно извлечь файл — с другой стороны, динамическое содержимое требует много работы, чтобы собрать страницу вместе с базой данных и обработкой этих данных. , Система кэширования дает нам полный круг, создавая эти динамические страницы, а затем в основном сохраняя их в виде статических файлов HTML. Когда снова запрашивается та же самая страница, ее не нужно пересчитывать, что ускоряет работу сайта.
Кэширование — это широкий термин, который может означать много вещей: CDN — это тип кеша; Существуют также кэши базы данных для часто задаваемых запросов (вспомните, как WordPress запрашивает в базе данных заголовок вашего блога каждый раз, когда кто-то просматривает ваш пост — потому что именно так и происходит). Я писал ранее о том, как настроить популярную систему W3 Total Cache для WordPress.
также используется здесь в MakeUseOf. В вашем браузере тоже есть кеш
— почти все можно кэшировать.
Итак, как вы можете видеть, на самом деле существует огромный объем работы и множество технологий, связанных с хостингом сайта. Тем не менее, это не значит, что вы не можете настроить свой собственный блог и запустить его менее чем за час. Масштабирование до многих тысяч пользователей — вот где начинаются проблемы.
Любые вопросы? Спросите, и я сделаю все возможное, чтобы ответить. Вы удивлены тем, сколько усилий может пойти на сайт?