Функционирование протокола HTTP

Тема 4.6. Обработка данных на Web-сервере

Управление фреймами, выводимыми в окне Web-браузера

Изменяя свойства элементов frame и frameset в родительском окне, можно управлять фреймами, выводимыми в окне Web-браузера.

Например, следующее предложение JavaScript во фрейме left вызовет смену страницы в правом фрейме:

p1RightObj.src = "next.html";

Изменяя количество и/или значения параметров в свойствах cols и rows элемента frameset можно менять количество фреймов и их расположение на экране. Так следующие предложения JavaScript во фрейме left поменяют вертикальное расположение фреймов на горизонтальное и изменят процентное отношение размеров фреймов

window.parent.document.getElementById(

"fs"

).removeAttribute("cols"); window.parent.document.getElementById("fs").setAttribute(

"rows","30%, 80%");

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

var newFrame =

window.parent.document.createElement("frame");

newFrame.src = "page1ru.html";

window.parent.document.getElementById("fs").cols =

"20%,40%,*";

window.parent.document.getElementById("fs").appendChild(

newFrame

);

Пример 4.5.72. Изменение значений атрибутов элемента frameset:

Просмотр примера: Example4-5-72.html

Текст документа HTML: Example4-5-72

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

Первая версия протокола HTTP, с номером 0.9, появилась в 1990 году и была разработана Тимом Бернерсом Ли (автором языка HTML) для передаче по сети документов HTML. Затем, в мае 1996 года, была принята версия HTTP 1.0 (RFC 1945). Однако практика использования этого протокола выявила его ограничения по обработке запросов и производительности, поэтому в июне 1999 года была принята новая версия протокола – HTTP 1.1 (RFC 2616), действующая и в настоящее время.

В конце 2007 года в IETF образована рабочая группа по редактированию и устранению отдельных ошибок в RFC 2616.

Протокол HTTP построен по модели «запрос-ответ». Вначале клиент устанавливает соединение с сервером и отправляет запрос. Сервер HTTP отвечает строкой статуса обработки запроса, а затем передает запрошенные данные.

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

· proxy – промежуточный агент;

· gateway – шлюз;

· tunnel – туннель.

Промежуточный объект proxy принимает запрос клиента и другому промежуточному объекту или Web-серверу, которому адресован запрос. При приеме ответа proxy пересылает его клиенту. Поэтому момент принятия запросов proxy может работать как сервер, а при передаче запросов – как клиент. Различают два вида proxy:

· прозрачный proxy, в котором запросы и ответы передаются без изменения;

· непрозрачный proxy, в котором изменяется часть или все сообщение запроса или ответа, а затем переформатированный запрос или ответ передается далее по цепочке.

Объект proxy часто используется как ретранслятор протоколов внутренней сети в Internet и, как правило, представляет собой «ворота» для выхода пользователей внутренней сети наружу.

В отличие от proxy, шлюз является посредником для другого сервера. Работа шлюза прозрачна для клиента, т.е. шлюз принимает запросы клиента, как если бы он является сервером, которому адресован запрос.

Шлюз, как правило, используется как ретранслятор запросов или протоколов внешней сети во внутреннюю сеть, к ресурсам сервера, т.е. как ворота входа пользователей внешней сети.

Туннель представляет собой программу-посредник между двумя соединениями. Туннели используются в тех случаях, когда необходимо организовать поток данных через какой-либо промежуточный объект (например, тот же proxy), который не может интерпретировать структуру потока данных.

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

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

Эффект от кэширования состоит в том, что он уменьшает длину цепочки соединения и, тем самым, уменьшает время соединения. Однако не все ответы могут кэшироваться. Некоторые запросы могут содержать параметры, накладывающие ограничения на работу кэша.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: