Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Принципи побудови HTTP-з'єднання

Протокол HTTP побудований по моделі "запит/відповідь”. Іншими словами, клієнт установлює з'єднання із сервером і відправляє запит. У ньому зазначений тип запиту, URL (URI, URN), версія протоколу HTTP (оскільки формат запиту може мінятися від версії до версії) і зміст запиту: інформація клієнта (параметри) і, можливо, супровідна інформація або тіло повідомлення. Сервер HTTP відповідає рядком статусу обробки запиту, що містить: версію підтримуваного протоколу, код обробки запиту або код помилки й інформацію, що повертається на запит. Інформація тіла повідомлень як клієнта, так і сервера повинна бути представлена в МІМЕ-форматі.

HTTP-з'єднання ініціюється користувачем і складається з запиту до ресурсу визначеного сервера. У найпростішому випадку, з'єднання являє собою потік даних між клієнтом — ініціатором з'єднання і сервером (рис.1).

 

Рис. 1. Найпростіша схема взаємодії між клієнтом і сервером HTTP

У більш складній ситуації, у процесі передачі даних беруть участь кілька проміжних об'єктів (Рис.2). Вони можуть бути трьох видів: proxy (проміжний агент), gateway (шлюз) і tunnel (тунель):

Proxy являє собою проміжний агент, що приймає запит клієнта і, у залежності від своїх настройок, змінює частину або все повідомлення запиту і передає переформатований запит далі по ланцюжку, наприклад, іншим серверам або запитуваному серверові. У момент прийняття запитів Proxy може працювати як сервер, а при передачі запитів — як клієнт. Proxy часто використовується як ретранслятор протоколів внутрішньої мережі в Internet і, як правило, являє собою "головні ворота" виходу користувачів внутрішньої мережі назовні.

Gateway (шлюз) являє собою проміжний сервер. На відміну від proxy, шлюз приймає запити клієнта, начебто він і є запитуваний сервер і передає їх далі. Робота шлюзу зовсім прозора для клієнта. Шлюз, як правило, використовується як ретранслятор запитів або протоколів зовнішньої мережі у внутрішню, до ресурсів сервера, тобто це "головні ворота" входу користувачів зовнішньої мережі.

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

 

 

Рис.2. Схема взаємодії клієнта і сервера через проміжні об'єкти мережі

На схемі показане з'єднання між клієнтом і сервером із трьома проміжними об'єктами ("А", "В" і "С"). Повідомлення запиту і відповіді повинні пройти через чотири окремих канали, а кожний із проміжних об'єктів може одночасно підтримувати кілька з'єднань. Наприклад, "В" може одержувати одночасно запит як від "А", так і від інших клієнтів, і передавати повідомлення на "С" і на інші сервери.

Кожний з об'єктів — учасників з'єднання, за винятком тунелю, може підтримувати внутрішній кеш запитів і відповідей.

Кеш являє собою локальну базу даних повідомлень відповідей і систему керування цією базою. Кеш зберігає відповіді серверів і повертає їх на запит клієнта, не передаючи запит наступному об'єктові ланцюжка з'єднання (рис.3).

Ефект від використання кеша полягає в тому, що він зменшує довжину ланцюжка з'єднання і, тим самим, зменшує час з'єднання.

 

Рис. 3. Схема використання кеша

На представленій схемі об'єкт "В" передає відповідь на запит зі свого кеша, що був побудований на підставі даних попереднього з'єднання.

Однак необхідно пам'ятати, що далеко не усі відповіді можуть кешуватися. Деякі запити можуть містити параметри, що накладають обмеження на роботу кеша.

HTTP - це протокол прикладного рівня, що, як правило, працює поверх транспортного протоколу TCP/IP, хоча, як усякий протокол прикладного рівня, може працювати на будь-якому іншому транспорті, який забезпечує надійне і достовірне з'єднання. При роботі з TCP сервер HTTP використовує, як правило, порт 80, хоча можливо використання й інших портів.

HTTP-з'єднання повинне відкриватися клієнтом перед кожним запитом і закриватися сервером після відправлення відповіді. Як клієнт, так і сервер повинні мати на увазі, що з'єднання може бути передчасно закрито або користувачем, або після закінчення часу з'єднання, або через збій системи.

<== предыдущая лекция | следующая лекция ==>
Протокол НТТР | Опис протоколу HTTP
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 274; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.