Протокол передачі гіпертексту
Протокол передачі гіпертексту
Протокол передачі гіпертексту HTTP є протоколом прикладного рівня для розподілених мультимедійних інформаційних систем. Це об'єктно-орієнтована протокол, придатний для вирішення багатьох завдань, таких як створення серверів імен, розподілених об'єктно-орієнтованих керуючих систем і ін. Структура HTTP дозволяє створювати системи, що не залежать від інформації, що передається.
Перші версії, такі як HTTP / 0.9, представляли собою прості протоколи для передачі даних через Інтернет. Версія HTTP / 1.0, описана в RFC-1945 [6], поліпшила протокол, дозволивши використання повідомлень в форматі MIME, що містять метаінформацію про переданих даних, і модифікатори для запитів / відповідей. Подальший розвиток мереж WWW-серверів зажадало нових удосконалень, які навряд чи є останніми.
Реальні інформаційні системи вимагають великих можливостей, ніж простий пошук і доставка даних. Для опису характеру, найменування та місця розташування інформаційних ресурсів введені: універсальний ідентифікатор ресурсу URI (Uniform Resource Identifier), універсальний покажчик ресурсу URL і універсальне ім'я ресурсу URN. Формат повідомлень подібний з використовуваними в електронній пошті і описаний в стандарті MIME (Multipurpose Internet Mail Extensions).
HTTP використовується також в якості базового протоколу для комунікації користувацьких агентів з проксі-серверами і іншими системами Інтернет, в тому числі і використовують протоколи SMTP, NNTP, FTP, Gopher і Wais. Остання обставина сприяє інтегруванню різних служб Інтернет. Нижче описані базові поняття і терміни протоколу HTTP.
Проміжна програма, яка працює як ретранслятор між двома об'єктами. Тунель закривається, коли обидві сторони, з'єднані їм переривають сесію. Тунель може бути активований за допомогою HTTP-запиту.
Час придатності об'єкта (expiration time)
Час, при якому вихідний сервер вимагає, щоб об'єкт не посилався більш кешем без повторного огляду придатності.
Евристичне значення часу життя (heuristic expiration time)
Час придатності, що привласнюється об'єкту в кеші, якщо цей час не задано явно.
Вік відгуку - час з моменту його здійснення та перевірки його придатності вихідним сервером.
Час життя (freshness lifetime)
Тривалість часу з моменту генерації відгуку до закінчення його придатності.
Відгук вважається свіжим, якщо його вік не перевищив часу його придатності.
Відгук вважається застарілим, коли його вік перевищив час життя.
Кеш по відношенню до конкретного відгуку функціонує в 'семантично прозорому' режимі, коли його використання не має наслідків ні для вихідного сервера, ні для запитувача клієнта. Коли кеш семантично прозорий, клієнт отримує в точності той же відгук (за винятком транспортних заголовків), який він би отримав при безпосередньому зверненні до вихідного сервера.
Протокольний елемент (наприклад, мітка об'єкта або час last-modified), який використовується для з'ясування того, чи є запис в кеші еквівалентною копією об'єкта.
Процедура, яка виконується над ресурсом (get, put, head, post, delete, trace і т.д.).
Взаємодія клієнта, кеша і вихідного сервера в протоколі HTTP
Кеш може перебувати в ЕОМ клієнта або агента користувача, але може розміщуватися на сусідньому континенті. Число проксі між клієнтом і вихідним сервером може варіюватися і обмежується зверху тільки здоровим глуздом.
Структура ресурсу і об'єкта
Протокол HTTP являє собою протокол запитів-відгуків. Клієнт надсилає запит серверу в формі, яка визначає метод, URI і версію протоколу. В кінці запиту слід MIME-подібне повідомлення, що містить модифікатори, інформацію про клієнта і, можливо, інші дані. Сервер відгукується, посилаючи статусну рядок, яка включає в себе версію протоколу, код результату (успіх / невдача) і MIME-подібне повідомлення, в якому містяться дані про сервер і метаінформація.
Більшість HTTP-обмінів ініціюються користувачем і складаються із запитів ресурсів, наявних на певному сервері. У найпростішому випадку такий запит може бути реалізований шляхом з'єднання призначеного для користувача агента (UA) та базового сервера.
Мал. 4.5.6.1.3 UA - агент користувача
Будь-який учасник обміну, який не використовується в якості тунелю, може скористатися кешем для запам'ятовування запитів. Буфер може скоротити довжину ланцюжка в тому випадку, якщо у одного з учасників процесу є в буфері відгук для конкретного запиту, що може, крім іншого, помітно знизити вимоги до пропускної здатності каналу. Не всі запити можуть записуватися в кеш, деякі з них можуть містити модифікатори роботи з кешем.
Насправді є широке розмаїття архітектур і конфігурацій буферних запам'ятовуючих пристроїв і проксі, що розробляються в даний час або вже доступних через World Wide Web. Ці системи включають ієрархії проксі-серверів національного масштабу, завданням яких є скорочення трансокеанського трафіку, системи, які обслуговують широкомовні і мультікастінговие обміни, організації, що поширюють фрагменти інформації з CD-ROM, занесеної в кеші і т. Д. HTTP-системи, використовуються в корпоративних мережах Інтранет з великими пропускними здатностями й перемежованими сполуками. Метою HTTP / 1.1 є підтримка широкого розмаїття вже існуючих систем і розширення можливостей майбутніх додатків щодо надійності і адаптованості.
Комунікації HTTP зазвичай реалізуються через з'єднання TCP / IP. Порт за замовчуванням має номер 80, а й інші номери портів цілком припустимі. Це не виключає використання HTTP поверх будь-якого іншого протоколу в Інтернет, або інших мереж. HTTP припускає надійне з'єднання; застосуємо будь-який протокол, який може гарантувати коректну доставку повідомлень.
У HTTP / 1.0, більшість додатків використовують нове з'єднання для кожного обміну запит / відгук. У HTTP / 1.1, з'єднання може бути використано для одного або більше обмінів запит / відгук, хоча з'єднання може бути розірвано з найрізноманітніших причин.