Веб-сервер в зависимости от - Добро пожаловать на portal.96.lt!

advertisement
Взаимодействие модулей портала
Пользователь
Браузер
Веб-сервер
Apache
Серверные
приложения
PHPобработчик
База данных
SQLite
Файловая
система
сервера
Файл базы
данных
CSS / JS
Медиаконтент
Браузер на стороне пользоваться взаимодействует в веб-сервером по средствам протокола HTTP.
Браузер получает различного рода контент: HTML-страницы, стили оформления (CSS), сценарии
для обработки данных (JavaScript), данные в формате JSON, медиа-контент (изображения, файлы
пользователя).
Веб-сервер в зависимости от запрашиваемого ресурса предоставляет либо файлы напрямую
(стили, сценарии, медиа-контент), либо пропускает через обработчик PHP.
PHP-обработчик формирует либо страницу формате HTML, либо данные в формате JSON (для
асинхронных запросов). При этом PHP-обработчик может обращаться к базе SQLite, файл данных
которой также расположен на файловой системе того же сервера.
Взаимодействие браузера с веб-сервером
Браузер пользователя подключается к веб-серверу по протоколу TCP/IP. Установив соединение,
браузер отправляет запросы серверу и получает ответы про протоколу HTTP.
HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол
прикладного уровня передачи данных (изначально — в виде гипертекстовых документов в
формате HTML, в настоящий момент используется для передачи произвольных данных). Основой
HTTP является технология «клиент-сервер», то есть предполагается существование потребителей
(клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов),
которые ожидают соединения для получения запроса, производят необходимые действия и
возвращают обратно сообщение с результатом.
Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном порядке:
Стартовая строка (англ. Starting line) — определяет тип сообщения;
Заголовки (англ. Headers) — характеризуют тело сообщения, параметры передачи и прочие
сведения;
Тело сообщения (англ. Message Body) — непосредственно данные сообщения. Обязательно
должно отделяться от заголовков пустой строкой.
Заголовки и тело сообщения могут отсутствовать, но стартовая строка является обязательным
элементом, так как указывает на тип запроса/ответа. Исключением является версия 0.9 протокола,
у которой сообщение запроса содержит только стартовую строку, а сообщения ответа только тело
сообщения.
Для версии протокола 1.1 сообщение запроса обязательно должно содержать заголовок Host.
Стартовые строки различаются для запроса и ответа. Строка запроса выглядит так:
GET URI — для версии протокола 0.9.
Метод URI HTTP/Версия — для остальных версий.
Здесь:
Метод (англ. Method) — название запроса, одно слово заглавными буквами. В версии HTTP 0.9
использовался только метод GET, список запросов для версии 1.1 представлен ниже.
URI определяет путь к запрашиваемому документу.
Версия (англ. Version) — пара разделённых точкой цифр. Например: 1.0
Чтобы запросить страницу данной статьи, клиент должен передать строку (задан всего один
заголовок):
GET /page/help HTTP/1.1
Host: moshkovo-nso.ru
Стартовая строка ответа сервера имеет следующий формат: HTTP/Версия КодСостояния
Пояснение, где:
Версия — пара разделённых точкой цифр как в запросе.
Код состояния (англ. Status Code) — три цифры. По коду состояния определяется дальнейшее
содержимое сообщения и поведение клиента.
Пояснение (англ. Reason Phrase) — текстовое короткое пояснение к коду ответа для пользователя.
Никак не влияет на сообщение и является необязательным.
Сервер возвращает ответ, где в теле ответа содержится данные в различном формате. Для
отображения страницы используется формат HTML, для оформления страницы используется
правила, оформленный в виде каскадных таблиц стилей CSS. Для функционирования бизнеслогики на стороне клиент могут исполняться сценарии JavaScript, которые также передаются
сервером по запросу по протоколу HTTP. Сценарий JavaScript может инициировать запросы к
серверу, для уточнения каких-либо данных или для манипуляции данными на сервере. Такие
запросы как правило не приводят перезагрузке страницы целиком, так как запрашиваются только
данные без HTML-разметки, а сценарий полученные данные встроит в страницу сам. При таком
методе обмена используется протокол JSON, который позволяет легко представлять сложные
структуры данных. Формат JSON простым способом может быть обработан как на стороне сервера
(PHP), так и на стороне клиента (JavaScript).
Для отображения страниц запросы проходят обработку в интерпретатор PHP, который либо
формирует страницу в формате HTML, либо формирует данный в формате JSON. Любые другие
данные, такие как изображения, пользовательские файлы, сценарии, стили – все они не проходят
обработку в PHP и отдаются веб-сервером напрямую в браузер.
Данные о содержимом страниц, о событиях календаря, о именах файлов и их дате хранятся в базе
данных SQLite. Подключение к базе данных PHP организует на прямую к файлу базы данных через
динамическую библиотеку. Таким образом информация из базы данных попадает в PHPобработчик, а оттуда через веб-сервер клиенту в браузер.
Download