26 Структура web-приложений. Протокол HTTP. Cookie. Функции web-приложения. Протокол CGI.

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

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

Протокол HTTP (Hypertext Transfer Protocol, протокол передачи гипертекстов) — это сетевой протокол прикладного уровня для распределенных гипертекстовых информационных систем. Этот протокол определяет способы передачи данных между web-браузером и web-сервером. основной областью его использования является World Wide Web.
HTTP является протоколом типа запрос/отклик. Клиент посылает серверу запрос, начинающийся со строки, содержащей тип запроса (метод), URI требуемого ресурса и номера версии протокола. 
Сервер отвечает строкой состояния, содержащей версию протокола и код состояния, за которой следует набор заголовков и, возможно, тело сообщения, как и в случае запроса отделенное от заголовков пустой строкой.
Определены следующие методы – GET, POST, HEAD, PUT, DELETE, TRACE  и OPTION, причем наиболее часто используются прикладными программами первые два.
Метод GET используется для запроса конкретного ресурса. Все параметры запроса передаются в URI запрошенного ресурса в виде пар <ключ>=<значение>, разделяемых знаком ‘&’ и отделенных от имени самого ресурса знаком ‘?’.
Метод POST используется для передачи значительных объемов данных серверу в теле запроса, так как длина URI ограниченна.

Метод HEAD аналогичен методу GET за исключением того, что в ответе на него содержится только набор заголовков, а сам ресурс не передается (тело ответа отсутствует).
Методы PUT и DELETE предназначены для изменения ресурсов средствами HTTP, а методы TRACE  и OPTION являются служебными.

Заголовки “Cookie:” предназначены для передачи особых объектов – cookies. Ввиду того, что протокол HTTP не поддерживает сеансов (то есть после получения запроса, его обработки и отправки ответа на уровне протокола HTTP операция является полностью завершенной) возникает необходимость дополнительного средства, позволяющего передавать информацию между http-запросами для организации логических связей между ними. Таким средством являются  сookies – особым образом обрабатываемые небольшие пакеты данных с содержимым произвольного вида. Сервер устанавливает cookie, задавая при этом время хранения и определяя набор ресурсов, к которым относится этот cookie. Браузер принимает cookie, хранит его заданное время и при каждом обращении к любому ресурсу добавляет в заголовок запроса информацию из всех относящихся к этому ресурсу cookies.

Механизмом передачи информации между web-сервером web-скриптом является протокол CGI. Интерфейс скрипта с внешним миром в соответствии с этим протоколом устроен следующим образом: тело http запроса передается на стандартный ввод скрипта, а информация из заголовков, наряду с внутренней информацией сервера, записывается переменные окружения (environment variables) с заданными именами. Скрипт должен полностью сформировать http ответ и отправить его на стандартный вывод. 

 

 

 

Конструктор сайтов - uCoz