Для среднего интернет-серфинга просмотр веб-контента прост. Вы открываете браузер, вводите URL и вуаля! Страница появляется вверх. Но с другой стороны, есть программное обеспечение, которое усердно работает, чтобы предоставить вам эту страницу. И большое количество этих серверов используют системы управления контентом для создания и обслуживания вашего любимого контента.
Что на самом деле происходит, когда вы «открываете» страницу из CMS? Давайте посмотрим на различные части систем, которые выводят контент на ваш экран.
Ранняя паутина
Улучшения в веб-хостинге
В конце 1990-х, когда Интернет начал набирать обороты, было много компонентов, позволяющих пользователям доступ их любимый веб-контент легко. Ситуация прогрессировала от загрузки веб-страниц непосредственно с хост-серверов до более сложной системы:
- Упрощенный доступ к регистрации системы доменных имен через частных лиц, что позволило связать произвольные метки, которые мы теперь знаем как доменные имена, с IP-адресами. Это позволило пользователям легко находить любимые сайты.
- Протокол передачи гипертекста (HTTP) предоставил стандартный метод отправки информации через Интернет. Это позволило отдельным лицам и организациям сделать свой контент доступным в формате HTML, чтобы любой мог прочитать его с помощью совместимого браузера.
- Появились веб-серверы, цель которых — дождаться запросов на веб-страницы и отправить обратно страницу. Это позволило администраторам легко масштабировать и защищать свою среду хостинга.
За это время браузеры стали доступны бесплатно, интернет-провайдеры, такие как AOL, предлагали неограниченный коммутируемый доступ, а пользователи мигрировали из закрытого сообщества (например, системы BBS) в открытый веб-контент. Но, несмотря на спрос на информацию, одна часть экосистемы все еще пострадала.
Недостатки в веб-авторинге
Процесс создания всех этих ранних веб-сайтов все еще был сосредоточен на ручных страницах в HTML. Это часто приводило к встроенному стилю и большому количеству очень нестандартного кодирования, особенно для «динамических» сайтов того времени (например, электронная коммерция на таких языках, как Perl). Кроме того, процесс издательский веб-сайт по-прежнему требует технических знаний о передаче FTP и веб-хостинга.
Затем больше пользовательского контента стало появляться в виде «профильных» сайтов, таких как Yahoo и MySpace. Службы блогов, такие как Blogger и LiveJournal, сделали еще один шаг вперед, в то время как настольные «редакторы веб-страниц» позволили создать (плохо выглядящую) веб-страницу, не зная никакой разметки. Они вдохновили современные системы управления контентом общего назначения, которые позволяют пользователям легко:
- Создавайте новые страницы с богатым форматированием.
- Организовать страницы в иерархию сайта.
- Управление мультимедиа на страницах, таких как изображения.
- Разрешить другим пользователям взаимодействовать с сайтом, вплоть до создания собственных страниц.
В следующих разделах мы рассмотрим, как именно CMS делает эти задачи такими простыми.
Компоненты CMS
На сегодняшний день доступно множество десятков приложений CMS, но большинство из них имеют следующие общие черты:
- Они построены на определенном языке программирования / сценариев. В отличие от HTML, который только наценка, язык программирования позволяет веб-страницам выполнять такие операции, как определение того, кто пытается их использовать, или выбор результатов на основе поиска.
- Они используют базу данных
для хранения содержимого страниц, списков пользователей / паролей или данных, представленных в форме.
- Они используют веб-сервер
, Он выполнит файлы подкачки (и их программирование) и вернет полученный HTML-код в браузер посетителя.
Мы рассмотрим каждый из них по очереди ниже.
Языки программирования CMS
Одним из основных различий между различными CMS является язык программирования, который они поддерживают
, Языки программирования используются для того, чтобы сделать сайт «динамичным», то есть выполнять вычисления или другую логику. Эти операции могут быть такими же простыми, как отображение текущего года в авторском праве нижнего колонтитула, добавление и отображение числовых отчетов.
Существует как минимум одна CMS для всех основных языков веб-программирования, включая:
- PHP: WordPress, Drupal, Joomla
- ASP.NET: DotNetNuke (DNN CMS), Umbraco
- Python: Джанго, Плоне
- Джава: Под открытым небом, магнолия
Из этих языков (и других) PHP
стал лидером по созданию систем управления контентом по нескольким причинам. Во-первых, это открытый исходный код, который нельзя было сказать о всех языках с самого начала. В результате это был язык, включенный бесплатно во многие дешевые хостинговые планы, где размещаются небольшие сайты. Кроме того, это по большей части простой язык для начала, позволяющий новым пользователям взламывать свои собственные функции на своих сайтах. Наконец, веб-сервер Apache с самого начала включал PHP как модуль. Настроить ведущий в мире веб-сервер было легко и быстро.
В то время как некоторые другие языки добились прогресса по сравнению с лидерами PHP
например), пройдет некоторое время, пока они захватят значительную долю рынка, такую как WordPress.
Базы данных CMS
Язык программирования данной CMS также определяет, какие базы данных он поддерживает или требует напрямую. PHP имеет отличную поддержку MySQL
хотя CMS, использующие его, часто можно заставить работать с PostgreSQL или SQLite
также. Аналогично, DNN CMS поддерживает Microsoft SQL Server, в то время как Alfresco поддерживает корпоративные и дружественные к Java базы данных, такие как Oracle и db2. В конце концов, база данных, которую вы используете для CMS, может также зависеть от того, что предоставляет ваша хостинговая среда. Хостинг для вашего блога почти наверняка сделает MySQL доступным для вас, в то время как ваша компания может использовать только Oracle.
База данных хранит большую часть контента для большинства CMS, за исключением файлов приложения (шаблоны страниц, надстройки и т. Д.), Мультимедиа (изображения и видео) и определенных конфигураций. Но текст на данной странице, а также пути к медиа-файлам и URL-адрес, на котором она находится, часто хранятся в таблицах БД.
CMS веб-сервер
Наконец, CMS является веб-приложением и, следовательно, требует веб-сервера. Благодаря использованию различных модулей Apache может поддерживать все четыре вышеупомянутых языка и многое другое. Новые веб-серверы набирают популярность
, такие как Nginx а также Lighttpd, также поддерживает различные наборы языков через дополнения.
Веб-сервер будет выполнять файлы сайта. Эти типы файлов (.PHP, .JSP и т. Д.) Обычно представляют собой разметку HTML.
со смешанным кодом языка программирования. Когда веб-сервер обрабатывает страницу, он выполняет любой программный код, с которым сталкивается, с помощью своего модуля / надстройки для этого языка. К тому времени, когда будет завершена обработка страницы, программный код будет заменен каким-то дружественным для браузера контентом.
Если вы посмотрите выше, вы увидите, что код на самом деле помогает создать страницу, «получая» заголовок и шаблон страницы. Чтобы сделать вещи более сложными, один файл может вызвать один или несколько других файлов для помощи. Поскольку мы рассмотрим некоторые реальные запросы к CMS в следующих разделах, имейте в виду, что запуск «файла PHP» может фактически включать запуск многих.
CMS в действии
Самый простой способ описать CMS — это взять пару примеров операций и пройтись по шагам для каждой из них. Как и в предыдущем примере, эти процессы начинаются с запроса страницы и заканчиваются отправкой веб-сервером некоторого HTML (и CSS / Javascript) обратно в браузер. Но между шагами, которые мы рассмотрим ниже, есть несколько шагов, предполагающих использование CMS на основе PHP.
Запрос страницы
Основное взаимодействие с CMS — это обычный пользователь, запрашивающий одну из своих страниц. Например, возьмите эту статью
на MakeUseOf. У него есть URL-адрес, но в каталоге в этом месте нет действительного файла. Когда браузер читателя запрашивает URL-адрес, веб-сервер запускает один из файлов PHP CMS, например index.php файл.
Страница PHP обрабатывает запрос, запрашивая базу данных для страницы CMS с соответствующим URL-адресом в своих метаданных (опять же, в месте расположения URL-адреса отсутствует файл). Затем он будет читать содержимое страницы (обычный текст и графику, а также виджеты) и метаданные (заголовок, используемый шаблон и т. Д.) Из БД и возвращать HTML-код страницы для отображения в браузере. Короче говоря, он использует URL для выбора какая страница записи в базе данных использовать.
Вход в систему
Таким же образом, пользователь, который хочет войти на сайт (например, для просмотра страницы «только для членов»)
) необходимо будет предоставить учетные данные. Когда они пытаются перейти на страницу, о которой идет речь, БД будет содержать разрешения, указывающие на то, что страница требует входа в систему.
При вводе имени пользователя и пароля на странице типа login.php, он запросит в базе данных пароль предоставленного имени пользователя, сделает сравнение, чтобы убедиться, что они совпадают, и отправит пользователя обратно на свою запрашиваемую страницу, если применимо.
Обновление страницы
Обновление страницы в CMS обычно требует доступа к ее экрану администрирования, внесения изменений в содержимое страницы и повторного сохранения / повторной публикации. Например, WordPress содержит страницу WP-администратора / post.php. Сначала он проверит, вошел ли пользователь в систему, и если да, то является ли он администратором. Затем он запросит в базе данных контент, представляющий страницу, которую пользователь хочет изменить, заполнив элементы управления редактированием, такие как текстовые области и селекторы изображений.
Пользователь может взаимодействовать с этими элементами управления (например, изменяя текст или заменяя изображения заголовка), нажимая кнопку «Сохранить» или «Опубликовать», когда закончите. В этот момент экран администратора примет новые заполненные значения и обновит их в базе данных.
CMS делают веб-авторинг доступным
Хотя внутренне они являются сложными приложениями, на первый взгляд, такие CMS, как WordPress, упрощают разработку в Интернете для нетехнических пользователей. Кто-то, кто хочет опубликовать простой блог, может подписаться на дешевую учетную запись хостинга, нажать несколько кнопок и иметь готовую к работе CMS в течение нескольких минут
, За пару долларов больше, хостинговая компания может даже управлять обновлениями и обслуживанием этого.
Есть ли у вас сайт или блог на определенной CMS? Облегчает ли ваша система управления контентом вашу работу? Или вы бы предпочли просто загрузить HTML в свою учетную запись хостинга, как в прошлый раз? Сообщите нам в комментариях, если вы преданный CMS или сторонник HTML старой школы.