HTTP

HTTP


HTTP(HyperText Transfer Protocol) - протокол передачі даних(гіпер-текстових документів).

Структура протоколу

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

Обмін повідомленнями йде за звичайною схемою "запит-відповідь". За допомогою запиту ми вказуємо, яку дію хочемо здійснити. Кожен запит/відповідь складається з трьох частин:

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

Запит

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

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

Типи http-запитів

OPTIONS

Повертає методи HTTP, які підтримуються сервером.

GET

Запитує вміст вказаного ресурсу.

HEAD

Аналогічний методу GET, за винятком того, що у відповіді сервера відсутнє тіло.

POST

Передає призначені для користувача дані(наприклад, з HTML-форми) заданому ресурсу.

PUT

Завантажує вказаний ресурс на сервер.

PATCH

Завантажує певну частину ресурсу на сервер.

DELETE

Видаляє вказаний ресурс.

TRACE

Повертає отриманий запит так, що клієнт може побачити, що проміжні сервери додають або змінюють в запиті.

CONNECT

Для використання разом з проксі-серверами, які можуть динамічно перемикатися в тунельний режим SSL.


Відповідь сервера

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

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


Коди статусу:

  • 1хх — інформаційний: запит прийнятий, продовжуй процес.
  • 2хх — успіх: дія була успішно передана, зрозуміла, та прийнята.
  • 3хх — перенаправлення: наступні дії мають бути успішно виконані для реалізації запиту.
  • 4хх — помилка клієнта: запит містить синтаксичні помилки або не може бути виконаний.
  • 5хх — помилка сервера: сервер не зміг виконати правильно сформований запит.


Найбільш поширені статуси:

  • 200 OK — запит виконано успішно.
  • 301 Moved Permanently — ресурс переміщено, його тепер можна знайти за іншою URL адресою.
  • 400 Bad Request — запит був сформований неправильно.
  • 401 Unauthorized — для здійснення запиту потрібна автентифікація.
  • 403 Forbidden — доступ до запитаного ресурсу заборонений.
  • 404 Not Found — ресурс не знайдений.
  • 405 Method Not Allowed — неправильний HTTP метод був задіяний для того, щоб отримати доступ до ресурсу.
  • 500 Internal Server Error — внутрішня помилка сервера.
  • 503 Service Unavailable — сервіс недоступний, ця помилка може статися, якщо на сервері сталася помилка, або він перевантажений.


Заголовки

Заголовки HTTP — це рядки, кожен з яких складається з імені параметра, за яким слідує двокрапка і значення параметру. Між заголовками повинен бути порожній рядок.


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

Запит

GET /wiki/HTTP HTTP/1.1
Host: uk.wikipedia.org
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7
Connection: close

Відповідь

HTTP/1.0 200 OK
Server: Apache
Content-Language: uk
Content-Type: text/html; charset=utf-8
Content-Length: 1234
(пустий рядок)
(далі йде текст html-сторінки)


Report Page