русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Протокол передачі даних HTTP


Дата додавання: 2014-11-27; переглядів: 1555.


HTTP — протокол передачі даних, що використовується в комп'ютерних мережах. Назва скорочена від Hyper Text Transfer Protocol, протокол передачі гіпер-текстових документів. Подібними до HTTP є протоколи FTP і SMTP.

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

HTTP припускає, що клієнтська програма — веб-браузер — здатна відображати гіпертекстові веб-сторінки та файли інших типів у зручній для користувача формі. Для правильного відображення HTTP дає можливість клієнтові дізнатися мову і кодування веб-сторінки.

Обмін повідомленнями йде по звичайній схемі «запит-відповідь». Для ідентифікації ресурсів HTTP використовує глобальні URI. На відміну від багатьох інших протоколів, HTTP не зберігає свого стану. Це означає відсутність збереження проміжного стану між парами «запит-відповідь». Компоненти, що використовують HTTP, можуть самостійно здійснювати збереження інформації про стан пов'язаний з останніми запитами і відповідями. Браузер, що посилає запити, може відстежувати затримки відповідей. Сервер може зберігати IP-адреси і заголовки запитів останніх клієнтів. Проте згідно протоколу клієнт та сервер не мають бути обізнаними про попередні запити і відповіді. У протоколі не передбачена внутрішня підтримка стану і він не пред'являє такі вимоги до клієнта та сервера.

Кожен запит/відповідь складається з трьох частин:

· стартовий рядок;

· заголовки;

  • тіло повідомлення, що містить дані запиту, запитаний ресурс або опис проблеми, якщо запит не виконано.

Обов'язковим є стартовий рядок. Починаючи з HTTP/1.1 обов'язковим став заголовок Host: (щоб розрізнити кілька доменів, які мають одну і ту ж IP-адресу).

Стартові рядки розрізняються для запиту і відповіді. Рядок запиту виглядає так:

‹Метод› ‹URI› HTTP/‹Версія›

де ‹Метод› може набувати такі значення:

Метод Зміст
OPTIONS   Повертає методи HTTP, які підтримуються сервером. Цей метод може служити для визначення можливостей веб-сервера
GET   Запитує вміст вказаного ресурсу. Запитаний ресурс може приймати параметри (наприклад, пошукова система може приймати шуканий рядок як параметр). Параметри передаються у рядку URI. Наприклад: http://www.example.net/resource?param1=value1&param2=value2 Згідно зі стандартом HTTP, запити типу GET вважаються ідемпотентними — багатократне повторення одного і того ж запиту GET повинне приводити до однакових результатів (за умови, що сам ресурс не змінився за час між запитами). Це дозволяє гешувати відповіді на запити GET.
HEAD   Аналогічний методу GET, за винятком того, що у відповіді сервера відсутнє тіло. Це корисно для витягання мета-інформації, заданої в заголовках відповіді, без пересилання всього вмісту. Зокрема, клієнт чи проксі, перевіривши заголовок Last-Modified: (останній час модифікації), таким чином може переконатися, що сторінка на сервері не змінилася від часу попереднього запиту.
POST   Передає призначені для користувача дані (наприклад, з HTML-форми) заданому ресурсу. Наприклад, у блогах відвідувачі зазвичай можуть вводити свої коментарі до записів в HTML-форму. Ці коментарі далі передаються серверу методом POST, і сервер поміщає їх на сторінку. При цьому передані дані (у прикладі з блогами — текст коментаря) включаються у тіло запиту. На відміну від методу GET, метод POST не вважається ідемпотентним, тобто багатократне повторення одних і тих же запитів POST може повертати різні результати (наприклад, після кожного відправлення коментаря з'являтиметься одна копія цього коментаря).
PUT Завантажує вказаний ресурс на сервер.
DELETE Видаляє вказаний ресурс.
TRACE   Повертає отриманий запит з можливістю дослідити, що проміжні сервери додають або змінюють у запиті.
CONNECT   Для використання разом з проксі-серверами, які можуть динамічно перемикатися у тунельний режим SSL.

В основному використовуються методи GET і POST.

Перший рядок відповіді виглядає так:

HTTP/‹Версія› ‹Код статусу› ‹Опис статусу›

Найтиповіші статуси:

  • 200 OK — запит виконаний успішно;
  • 403 Forbidden — доступ до запитаного ресурсу заборонений;
  • 404 Not Found — запитаний ресурс не знайдений.

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

Приклад HTTP діалогу:

Запит

GET /wiki/HTTP HTTP/1.1
Host: uk.wikipedia.org
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7
Connection: close


<== попередня лекція | наступна лекція ==>
Таблиці | Специфікація обміну даними CGI


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн