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

Сервіси WWW.

Протокол передачі гіпертексту.

План.

Тема: Протокол НТТР.

Мета:

- систематизувати знання про функції транспортного рівня;

- оволодіти знаннями про протокол НТТР;

- формувати професійні навики при організації адресації в глобальних комп’ютерних мережах за допомогою протоколу НТТР;

Навчально-методичне забезпечення, ТЗН:

1. Протокол передачі гіпертексту.

2. Сервіси WWW.

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

4. Опис протоколу HTTP.

Література:

1. Буров Є.В. Комп’ютерні мережі: Підручник. – Львів: “Магнолія плюс”,2006. – 264 с.

2. Компьютерные сети. 4-е изд. / Э. Таненбаум. — СПб.: Питер, 2003. — 992 с:

3. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 4-е изд. — СПб.: Питер, 2010. — 944 с.

4. Ватаманюк А. И. Видеосамоучитель. Создание и обслуживание локальных сетей (+CD). — СПб.:Питер, 2008. — 304 с.

5. Принципы маршрутизации в Internet, 2-е издание.: Пер. с англ. М.: Издательский дом "Вильямс", 2001. — 448 с.


HTTP (Hypertext Transfer Protocol, Протокол передачі гіпертексту) являє собою протокол прикладного рівня. HTTP забезпечує високопродуктивний механізм тиражування інформації мультимедійних систем незалежно від типу представлення даних. Протокол побудований за об'єктно-орієнтованою технологією і може використовуватися для рішення різних задач, наприклад, роботи із серверами імен або керування розподіленими інформаційними системами. На даний момент найбільш розповсюдженою є специфікація протоколу "НТТР/1.0".

WWW (World Wide Web, Всесвітня павутина) складається з комп'ютерів, що надають графічний доступ до інформації, що зберігається на них. Здатність зберігати мультимедійну інформацію, таку як відео, аудіо, картинки і звуки, робить WWW унікальним засобом тиражування інформації. WWW-сервер являє собою комп'ютер, на якому працює певне програмне забезпечення, що надає можливість користувачам Internet приєднуватися і користуватися WWW-ресурсами цього комп'ютера для пошуку і вибору інформації.

З 1990 року протокол HTTP використовується інформаційною системою WWW у якості одного з основних протоколів роботи.

Протокол HTTP дозволяє одержувати доступ до ресурсів і сервісів WWW-серверів. Для уніфікації доступу до багатофункціональних ресурсів мережі, WWW-сервери підтримують комплекс інтерфейсів, що дозволяють структурувати рівні і методи роботи з різними ресурсами мережі. По суті, кожний з інтерфейсів являє собою об'єкт мережі зі своїми методами і своєю структурою. Узгоджена взаємодія цих об'єктів і складає вся розмаїтість світу WWW.

URI (Uniform Resource Identifier, Ідентифікатор ресурсу), URL (Uniform Resource Locator, Місцезнаходження ресурсу), URN (Uniform Resource Name, Ім'я ресурсу) — різні імена того самого сервісу, що призначений для ідентифікації типів, методів роботи і комп'ютерів, на яких знаходяться визначені ресурси, доступні через Internet. Цей сервіс складається з трьох частин:

- Схема. Ідентифікує тип сервісу, через який можна одержати доступ до сервісу, наприклад FTP або WWW-сервер

- Адреса. Ідентифікує адресу (хост) ресурсу, наприклад, www.ripn.net

- Ім'я або шлях доступу. Ідентифікує повний шлях до ресурсу на обраному хості, що ми хочемо використовувати для доступу до ресурсу, наприклад, /home/images/imagel.gif

Іншими словами, URL, URI і URN — це спосіб для уздженої ідентифікації ресурсів у Internet.

Як правило, коли мають на увазі комп'ютер, на якому розташований ресурс, використовують значення URL або URN, а коли позначають ресурс цілком (тип, хост, шлях) використовують URI

URI ресурсу може містити не тільки ім'я ресурсу, але і параметри, необхідні для його роботи. Ім'я ресурсу відділене від рядка параметрів символом "?". Рядок параметрів складається з лексем, поділюваних символом "&". Кожна така лексема складається з імені параметра і його значення, розділених символом "=". Символи, що не входять у набір символів ASCII, заміняються знаком "%" і шістнадцятковим значенням цього символу. Наприклад, символ пробілу " " заміняється на "%20".

HyperText Markup Language (HTML) — це мова опису інформації, яка міститься на WWW. HTML-файл являє собою звичайний ASCII-текст, що містить спеціальні коди, що позначають приєднану до файлу графічну, відео, аудіо інформацію або виконувані коди середовища перегляду інформації — Web browser — Java Script, Java Classes. Уся ця інформація зберігається у файлах на WWW-сервері. Коли Web browser одержує доступ до цього файлу, він спочатку інтерпретує закодовану в HTML-файлі інформацію, а потім представляє для користувача всю інформацію в графічному або текстовому виді Web-сторінок.

НТ у HTML позначає HyperText, основну концепцію розміщення інформації на WWW. HyperText або hyperlinks (гіперпосилання), містить зв’язки (URL) усередині текстового документа, що дозволяють користувачеві швидко переходити від однієї частини документа до іншої або до іншого документа.

Common Gateway Interface (CGI) — це стандарт розширення функціональності WWW, що дозволяє WWW-серверам виконувати програми, аргументами роботи яких може керувати користувач. WWW-сервери дозволяють запитувати статичні HTML Web-сторінки і переглядати їх за допомогою We-браузерів. CGI розширює можливості користувача і дозволяє виконувати програми, асоційовані з даною Web-сторінкою і надає можливість одержання динамічної інформації з WWW-сервера. Наприклад, користувач такого WWW-сервера може одержати саму останню інформацію про погоду, виконавши програму, що запитує прогноз погоди на даний момент із бази даних.

CGI-інтерфейс, в основному, служить як шлюз між WWW-сервером і зовнішніми програмами, що виконуються. Він одержує запит від користувача, передає його зовнішній програмі і потім повертає результати користувачеві через динамічно побудовану Web-сторінку. При цьому побудовані Web-сторінки можуть докорінно відрізнятися друг від друга, якщо вони побудовані в залежності від переданих користувачем параметрів.

Найчастіше CGI використовується для вибірки інформації з баз даних. Користувач уводить запит у Web-сторінку; WWW-сервер його читає, передає відповідному додаткові або запускає процес для його обробки, одержує результат запиту і показує його користувачеві.

Механізм CGI цілком платформно-незалежний і може передавати дані між будь-якими WWW-серверами, що підтримують механізм CGI. Оскільки CGI заснований на файлах, що виконуються, немає обмежень на тип програми, що буде виконуватися в CGI. Програма може бути написана на будь-якій з мов програмування, що дозволяє створювати модулі, що виконуються, C/C++, FORTRAN, Pascal, Visual Basic або PowerBuilder. CGI-програма також може бути написана з використанням командних мов операційних систем, таких як Perl або Shell.

Останнім часом бурхливо розвивається тенденція активних серверних сторінок, так званих ASP. По суті це використання того ж самого стандарту CGI, тільки на рівні об’єктно-орієнтованого підходу до побудови Web-сторінок.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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