Материал предоставлен https://it.rfei.ru

Процедура «запрос — ответ»

В наиболее общем виде процесс «запрос — ответ» состоит из просьбы веб-браузера к веб-серверу отправить ему веб-страницу и выполнения веб-браузером этой просьбы. После этого браузер занимается отображением страницы (рис. 1.1). При этом соблюдается следующая пошаговая последовательность.

  1. Вы вводите в адресную строку браузера http://server.com.
  2. Ваш браузер ищет IP-адрес, соответствующий доменному имени server.com.
  3. Браузер посылает запрос на главную страницу server.com.
  4. Запрос проходит по сети Интернет и поступает на веб-сервер server.com.
  5. Веб-сервер, получивший запрос, ищет веб-страницу на своем жестком диске.
  6. Веб-страница извлекается веб-сервером и отправляется по обратному маршруту в адрес браузера.
  7. Браузер отображает веб-страницу.

Рис. 1.1. Основная последовательность процесса «запрос — ответ» между клиентом и сервером

При передаче типовой веб-страницы этот процесс осуществляется для каждого имеющегося на ней объекта: элемента графики, встроенного видео- или Flash-ролика и даже шаблона CSS.

Обратите внимание на то, что на шаге 2 браузер ищет IP-адрес, принадлежащий доменному имени server.com. У каждой машины, подключенной к Интернету, включая и ваш компьютер, есть свой IP-адрес. Но, как правило, доступ к веб-серверам осуществляется по именам, таким как google.com. Вам, должно быть, известно, что браузер обращается к вспомогательной интернет-службе, так называемой службе доменных имен (Domain Name Service (DNS)), для того чтобы найти связанный с именем IP-адрес, а затем воспользоваться им для связи с компьютером.

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

  1. Вы вводите в адресную строку браузера http://server.com.
  2. Ваш браузер ищет IP-адрес, соответствующий доменному имени server.com.
  3. Браузер посылает запрос на главную страницу server.com.
  4. Запрос проходит по сети Интернет и поступает на веб-сервер server.com.
  5. Веб-сервер, получивший запрос, ищет веб-страницу на своем жестком диске.
  6. Теперь, когда главная страница размещена в его памяти, веб-сервер замечает, что она представлена файлом, включающим в себя PHP-сценарии, и передает страницу интерпретатору РНР.
  7. Интерпретатор РНР выполняет РНР-код.
  8. Некоторые фрагменты кода РНР содержат MySQL-инструкции, которые интерпретатор РНР, в свою очередь, передает процессору базы данных MySQL.
  9. База данных MySQL возвращает результаты выполнения инструкции интерпретатору РНР.
  10. Интерпретатор РНР возвращает веб-серверу результаты выполнения кода РНР, а также результаты, полученные от базы данных MySQL.
  11. Веб-сервер возвращает страницу выдавшему запрос клиенту, который отображает эту страницу на экране.

Рис. 1.2. Динамическая последовательность процесса «запрос — ответ», выполняемого клиентом и сервером

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

В каждом из примеров возвращенные браузеру HTML-страницы могут содержать также код JavaScript, интерпретируемый локально на машине клиента. Этот код может инициировать еще один запрос, точно так же запрос может быть инициирован встроенными объектами, например изображениями.

HTTP и HTML: основы, заложенные Бернерсом-ЛиПреимущества использования РНР, MySQL и JavaScript