Тема 15. Клиент-серверное взаимодействие


Цель: формирование у студентов знаний о клиент-серверном взаимодействии и навыков разработки HTML-контента на сервере.

 

План занятия:

1. Изучить теоретические сведения.

2. Выполнить практическое задание по лабораторной работе.

3. Оформить отчёт и ответить на контрольные вопросы.

 

Теоретические сведения

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

Для веб-приложений, предоставляющих данные в формате HTML с применением таблиц стилей, скриптов на языке JavaScript, изображений, видео, звука, клиент-серверное взаимодействие реализуется с использованием HTTP-протокола (протокола передачи гипертекстовых документов).

HTTP – это текстовый протокол прикладного уровня, в котором единичный факт передачи информации представляет собой специальный запрос, содержащий шапку и тело запроса. Пример такого запроса приведён ниже.

 

GET http://www.msn.com/ HTTP/1.1 Host: www.msn.com Accept: text/html Accept-Language: en-US User-Agent: Mozilla/5.0 Запрашиваем данные по адресу /, расположенные на узле www.msn.com, просим ответ прислать в формате text/html на английском языке, передаём имя пользовательской программы Mozilla/5.0  

В этом случае можно получить такой ответ:

 

HTTP/1.1 200 OK Content-Length: 309260 Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.5 Date: Wed, 09 Sep 2015 13:50:28 GMT   <!DOCTYPE html><html><head . . Получаем подтверждение от сервера об успешном формировании данных длины 309260 байт в формате text/html и кодировке utf-8. Обслуживающий веб-сервер Microsoft-IIS/8.5, дата 9 сентября 2015 время 13:50. Дальше сами данные.

 

Или можно передать данные на сервер. Пример такого запроса приведён ниже.

 

POST https://profile.tut.by/authorize/ HTTP/1.1 Host: profile.tut.by Content-Length: 52 Content-Type: application/x-www-form-urlencoded   login_action=login&login=test&password=test&memory=1 Передача данных с использованием защищённого канала (https) по адресу profile.tut.by/authorize/ расположенному на узле profile.tut.by Данные длиной 52 байта в формате application/x-www-form-urlencoded Сами данные представляют собой пары ключ-значение: login_actio=login login=test password=test memory=1

 

В качестве ответа, можно получить следующее.

 

HTTP/1.1 302 Found Server: nginx/1.7.6 Date: Wed, 09 Sep 2015 14:01:52 GMT Content-Type: text/html; charset=windows-1251 Content-Length: 0 Location: http://www.tut.by/?error=login_ Error   Ответ – перенаправление, сервер nginx/1.7.6, дата 9 сентября 2015 14:01, данные в формате text/html в кодировке windows-1251 длиной 0 байт. Адрес перенаправления http://www.tut.by/?error=login_error

Стандарт HTTP описывает структуру запросов, важной частью которых явзяется Method или Verb (глагол), описывающий намерения пользователя. Основными методами или глаголами являются GET – используется для выражения намерения запроса информации с сервера, как в первом примере, и POST – используется для выражения намерения передачи информации на сервер, как во втором примере.

В случае, если пользователь взаимодействует со статическим сайтом (набором свёрстанных HTML-страниц на веб-сервере) все варианты взаимодействия можно описать методом GET.

Клиент-серверное взаимодействие в этом случае выглядит следующим образом.

1. Клиент отправляет HTTP-запрос на сервер с указанием идентификатора ресурса

2. Сервер принимает запрос от клиента

3. Сервер находит на диске документ, соответствующий идентификатору ресурса

4. Сервер формирует HTTP-ответ клиенту и отадёт ему HTML-документ.

Как правило вместе с HTML-вёрсткой используется язык программирования (например, PHP). Это поволяет имея один-единственный HTML-документ, описать изменения во внутринней структуре этого документа как реакцию приложения на запросы пользователя.

PHP – это интерпретируемый язык программирования. Это означает, что программа-интерпретатор выполняет инструкции, написанные на языке PHP, строчка за строчкой, без каких-либо промежуточных преобразований. Файлы, содержавшие инструкции на языке PHP имеют расширение .php, однако результатом выполнения этих файлов обычно является HTML-документ. Клиент-серверное взаимодействие в этом случае выглядит следующим образом.

1. Клиент отправляет HTTP-запрос на сервер с указанием идентификатора ресурса.

2. Сервер принимает запрос от клиента.

3. Сервер определяет, что запрашиваемый ресурс ассоциирован с интерпретатором PHP.

4. Сервер передаёт управление интерпретатору, сообщая ему детали запроса.

5. Интерпретатор выполняет инструкции, указанные в файле, на который ссылается запрос пользователя, в результате получается HTML-документ.

6. Интерпретатор возвращает HTML-документ серверу.

7. Сервер формирует HTTP-ответ клиенту и отадёт ему HTML-документ.

Для выполнения инструкций на языке PHP нужен PHP-интерпретатор, веб-сервер. Установить все это можно, используя инсталлятор AppServ.

 

Практическое задание:

1. Установить AppServ http://htmlbook.ru/webserver/appserv

2. Написать программу, динамически генерирующую HTML-страницу по POST-запросу пользователя.

3. Протестировать выполнение программы.

4. Проанализировать полученные результаты. Выделить клиентскую и серверную часть.

 

Содержание отчета:

1. Цель работы.

2. Программа, динамически генерирующая HTML-страницу по POST-запросу пользователя.

3. Выводы по работе.

 

Контрольные вопросы:

1. Какую модель взаимодействия использует веб-приложение?

2. Что такое и для чего необходим HTTP-протокол?

3. Что представляет собой клиент-серверное взаимодействие в случае статического сайта?

4. Для чего предназначен язык программирования PHP?

5. Что представляет собой клиент-серверное взаимодействие при программировании серверной логики на PHP?

 

 



Дата добавления: 2019-09-30; просмотров: 482;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.