Мегаобучалка Главная | О нас | Обратная связь


Взаимодействие с клиентом



2019-07-04 160 Обсуждений (0)
Взаимодействие с клиентом 0.00 из 5.00 0 оценок




Динамическая генерация контента позволяет пользователю интерактивно взаимодействовать с www-сервером. Типичным примером этого процесса является работа с поисковым сервером: пользователь указывает строку поиска, которая и является параметром запроса. Сервер производит поиск строки в базе данных и формирует HTML-страницу, содержащую результаты поиска.

Пользователь задает параметры запроса путем заполнения и отправки HTML-форм. Формы содержат поля ввода текстовой информации, радиокнопки, выпадающие списки и т. п. Интерес представляет то, как именно браузер присоединяет введенные данные к запросу. В тэге <form> содержатся два параметра: action и method. Первый указывает URL, к которому будет отправлен запрос по заполнению формы, а второй - метод этого запроса.

Существуют два метода: GET и POST. При отправке запроса методом GET данные, введенные в форму, присоединяются к URL после вопросительного знака. В этом случае URL может выглядеть, например, так: "/cgi-bin/dir/script.pl?name=John&age=25 &hobby=reading&hobby=football". Нетрудно заметить, что данные состоят из пар "имя=значение", разделенных амперсандами. При отправке данных методом POST та же самая строка: "па-me=John&age=25&hobby=reading&hob-by=football" помещается после заголовке запроса, отделяясь от них пустой строкой В этом случае к URL ничего не добавляется.

Очевидно, что никакой HTTP-сервер не может предусмотреть всего разнообразия интерактивных www-приложений. Вместо этого HTTP-сервер предлагает разработчику интерфейс, используя который, сторонняя программа может получить от HTTP-сервера все необходимые для обработки запроса данные, а в ответ сгенерировать контент, который будет возвращен сервером браузеру. Таким образом, задача генерации контента возлагается на приложения, разрабатываемые под нужды конкретной задачи. В комплексных информационных системах на базе WWW говорят, что HTTP-сервер - это front end www-сайта, а приложения, генерирующие контент, - back end. Часто приложения работают в связке с базой данных: таким образом, имеет место трехуровневая схема: HTTP-сервер - приложение - база данных.

Интерфейс CGI

Наиболее общим и распространенным интерфейсом подобного типа является CGI. При его использовании HTTP-сервер запекает приложение, которое должно обработать запрос, и передает ему на стандартный ввод все, что поступило в запросе после заголовков. Также HTTP-сервер устанавливает несколько переменных окружения, в том числе переменную QUERY_STRING, которая содержит часть URL, расположенную после вопросительного знака (а это, как мы знаем, данные, переданные методом GET). Таким образом, CGI-приложение получает доступ к данным, введенным пользователем в форму. Отметим, что сами данные, их наличие или отсутствие, размещение в теле запроса или в URL или сразу в обоих местах HTTP-сервером никак не интерпретируются и не декодируются, а передаются приложению как есть. Все задачи по интерпретации и преобразованию данных возложены на CGI-приложение. Обработав запрос, приложение передает сгенерированный контент на свой стандартный вывод, где он перехватывается HTTP-сервером и пересылается клиенту. Единственный заголовок, который обязано выставить само CGI-приложение, - Content-Type.

Выполняемые составляющие

Другой способ динамической генерации контента - внесение программного кода непосредственно в текст HTML-файла. Код размещается внутри специальных тэгов (например, ). Приняв запрос такого файла, HTTP-сервер производит разбор его содержимого, обнаруживает программный код и исполняет его. В текст исходного файла вставляется результат выполнения кода и итоговый контент отправляется клиенту. Популярными технологиями, использующими встроенный код на стороне сервера, являются PHR ASP (Active Server Pages), JSP (Java Server Pages). В отличие от CGI, где от сервера, в общем случае, не требуется никаких знаний о том, как работает запускаемая им CGI-программа, при использовании встроенного кода требуется поддержка соответствующей технологии сервером, так как выполнение кода производится внутри процесса сервера.

Особый случай встроенного кода - язык Javascript. Код, написанный на Javascript, помещается внутри пары тэгов <script> и </script>, передается на сторону клиента и выполняется браузером. На стороне клиента выполняются также программы, написанные на языке Java. Встретив в HTML-документе тэг <applet>, браузер загружает с сервера файл, содержащий байт-код программы, и передает его на выполнение Java-машине. Последнюю можно бесплатно загрузить из Интернета с сайта http://java.sun.com.

 

Кэширование данных

Часто между браузером и HTTP-сервером располагается промежуточное звено - HTTP-кэш, или прокси-сервер. Не всякий контент будет помещен в кэш. Администратор прокси-сервера формулирует политику кэширования: например, не кэшировать контенты больше определенного размера, контенты, в URL которых имеется каталог cgi или cgi-bin, или контенты, полученные с серверов локальной сети. Кроме того, используя заголовок Cache-Control, сервер может явно запретить кэширование выдаваемого им контента. Помещенный в кэш контент не хранится там вечно: на основании значения заголовков Last-Modified и Expires прокси-сервер определяет его "срок годности".

Очевидно, что не все информационные ресурсы WWW могут быть открыты для всеобщего просмотра. Для того чтобы ограничить доступ к какому-либо ресурсу, используется аутентификация клиента, прежде чем запрос обслуживается HTTP-сервером. Аутентификация выполняется с помощью заголовков WWW-Authenticate и Authorization. Сегодня определены две схемы аутентификации: Basic и Digest, фундаментально отличающиеся друг от друга с точки зрения безопасности. Первая представляет собой обычную процедуру пересылки имени и пароля пользователя в открытом виде; вторая использует алгоритм MD5.



2019-07-04 160 Обсуждений (0)
Взаимодействие с клиентом 0.00 из 5.00 0 оценок









Обсуждение в статье: Взаимодействие с клиентом

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (160)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)