Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



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

HTTP (HyperText Transfer Protocol - протокол передачі гіпертексту) був розроблений як основа World Wide Web.

Робота по протоколу HTTP відбувається наступним чином: програма-клієнт встановлює TCP-з'єднання з сервером (стандартний номер порту-80) і видає йому HTTP-запит. Сервер обробляє цей запит і видає HTTP-відповідь клієнту.

Структура HTTP-запиту

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

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

Запит у головній рядку складається з трьох частин, розділених пробілами:

Метод (інакше кажучи, команда HTTP):

GET - запит документа. Найбільш часто вживається метод; в HTTP/0.9, кажуть, він був єдиним.

HEAD - запит заголовка документа. Відрізняється від GET тим, що видається тільки заголовок запиту з інформацією про документ. Сам документ не видається.

POST - цей метод застосовується для передачі даних CGI-скриптів. Самі дані слідують у наступних рядках запиту у вигляді параметрів.

PUT - розмістити документ на сервері. Наскільки я знаю, використовується рідко. Запит з цим методом має тіло, в якому передається сам документ.

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

Версія протоколу-версія протоколу HTTP, з якою працює клієнтська програма.

Таким чином, найпростіший HTTP-запит може виглядати наступним чином:

GET/HTTP/1.0

Тут запитується кореневої файл з кореневої директорії web-сервера.

Рядки після головної рядка запиту мають наступний формат:

Параметр: значеніe.

Таким чином задаються параметри запиту. Це є необов'язковим, всі рядки після головної рядка запиту можуть бути відсутні; в цьому випадку сервер приймає їх значення за замовчуванням або за результатами попереднього запиту (при роботі в режимі Keep-Alive).

Перерахую деякі найбільш вживані параметри HTTP-запиту:

Connection (з'єднання) - може приймати значення Keep-Alive і close. Keep-Alive ("залишити в живих") означає, що після видачі даного документа з'єднання з сервером не рвуться, і можна видавати ще запити. Більшість браузерів працюють саме в режимі Keep-Alive, так як він дозволяє за одне з'єднання з сервером "скачати" html-сторінку і малюнки до неї. Будучи якось встановленим, режим Keep-Alive зберігається до першої помилки або до явного вказівки в черговому запиті Connection: close. close ("закрити") - з'єднання закривається після відповіді на даний запит.

User-Agent - значенням є "кодове позначення" браузера, наприклад:

Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)

Accept - список підтримуваних браузером типів вмісту в порядку їх переваги даними браузером, наприклад для мого IE5:

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Це, очевидно, потрібно для випадку, коли сервер може видавати один і той же документ в різних форматах.

Значення цього параметра використовується в основному CGI-скриптами для формування відповіді, адаптованого для даного браузера.

Referer - URL, з якого перейшли на цей ресурс.

Host - ім'я хоста, з якого запитується ресурс. Корисно, якщо на сервері є декілька віртуальних серверів під одним IP-адресою. У цьому випадку ім'я віртуального сервера визначається по цьому полю.

Accept-Language - підтримуваний мову. Має значення для сервера, який може видавати один і той же документ в різних мовних версіях.

Формат HTTP-відповіді

Формат відповіді дуже схожий на формат запиту: він також має заголовок і тіло, розділене порожнім рядком.

Тема також складається з основного рядка і рядків параметрів, але формат основного рядка відрізняється від такої в заголовку запиту.

Основна рядок запиту складається з 3-х полів, розділених пробілами:

Версія протоколу - аналогічний відповідному параметру запиту.

Код помилки - кодове позначення "успішності" виконання запиту. Код 200 означає "все нормально" (OK).

Словесний опис помилки - "розшифровка" попереднього коду. Наприклад для 200 це OK, для 500 - Internal Server Error.

Найбільш вживані параметри http-відповіді:

Connection - аналогічний відповідному параметру запиту.

Якщо сервер не підтримує Keep-Alive (є й такі), то значення Connection у відповіді завжди close.

Тому, правильною тактикою браузера є наступна:

1. видати у запиті Connection: Keep-Alive;

2. про стан з'єднання судити по полю Connection у відповіді.

Content-Type ("тип вмісту") - містить позначення типу вмісту відповіді.

Залежно від значення Content-Type браузер сприймає відповідь як HTML-сторінку, картинку gif або jpeg, як файл, який треба зберегти на диску, або як-небудь ще і робить відповідні дії. Значення Content-Type для браузера аналогічно значенню розширення файлу для Windows.

Деякі типи вмісту:

text/html - текст у форматі HTML (веб-сторінка);

text/plain - простий текст (аналогічний "блокнотовскому");

image/jpeg - картинка у форматі JPEG;

image/gif - те ж, у форматі GIF;

application/octet-stream - потік "октетів" (тобто просто байт) для запису на диск.

Насправді типів вмісту набагато більше.

Content-Length ("довжина вмісту") - довжина вмісту відповіді в байтах.

Last-Modified ("Модифікований востаннє") - дата останньої зміни документа.

 


Читайте також:

  1. Активний опір ліній електропередачі
  2. БАГАТОКАНАЛЬНІ СИСТЕМИ ПЕРЕДАЧІ ІНФОРМАЦІЇ
  3. Багаторівневий підхід. Протокол. Інтерфейс. Стек протоколів.
  4. В обох випадках основним розрахунковим рівнянням є рівняння теплопередачі і теплового балансу
  5. Види атак на механізми та протоколи автентифікації
  6. Вимірювання інформації та швидкість її передачі
  7. Вираження коефіцієнту масопередачі через коефіцієнти масовіддачі
  8. Віддалена робота із ОС. Протокол SSH. Утиліта putty
  9. Відповідно до каналів передачі технологій
  10. Властивості м’язового волокна. Механізми утворення та передачі збудження, скорочення скелетних м’язів.
  11. Вплив ліній електропередачі
  12. Графічний та аудіовізуальний способи передачі інформації




Переглядів: 1565

<== попередня сторінка | наступна сторінка ==>
Мережі обміну даними peer-to-peer на прикладі протоколу BitTorrent | Веб-сервер Apache

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.01 сек.