→ Пошук по сайту       Увійти / Зареєструватися
Знання Сервiси Internet WWW - технології HTTP-протокол роботи з WWW

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

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

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

Рисунок 5 - Найпростiша схема взаємодiї мiж клiєнтом i сервером HTTP

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

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

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

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

Рисунок 6 - Схема взаємодiї клiєнта i сервера через промiжнi об'єкти мережi

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

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

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

 

Рисунок 7 - Схема використання кешу

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

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

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

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

загрузка...
Сторінки, близькі за змістом