70790

HTTP - Hypertext Transfer Protocol

Лабораторная работа

Информатика, кибернетика и программирование

Протокол передачи гипертекста HTTP является протоколом прикладного уровня для распределенных мультимедийных информационных систем. Это объектно-ориентированный протокол, в первую очередь используемый для World-Wide Web...

Русский

2014-10-27

156.45 KB

1 чел.

Тема 8: HTTP - Hypertext Transfer Protocol

Общие сведения

Протокол передачи гипертекста HTTP является протоколом прикладного уровня для распределенных мультимедийных информационных систем. Это объектно-ориентированный протокол, в первую очередь используемый для World-Wide Web (World Wide Web,  WWW,  представляет собой информационную систему, базирующуюся на использовании гипертекста), но также пригодный для решения других задач. Структура HTTP позволяет создавать системы, независящие от передаваемой информации.

Протокол HTTP использован при построении глобальной информационной системы World-Wide Web (начиная с 1990). Первая версия протокола –HTTP/0.9, была простейшим протоколом для передачи данных через Internet. В 1996 году появился стандарт HTTP/1.0 (RFC-1945), в котором протокол был расширен возможностью передавать сообщения в формате MIME, содержащие метаинформацию о пересылаемых данных и различные модификаторы для запросов и ответов. Однако HTTP/1.0 не учитывал существование таких вещей, как иерархические системы proxy/cache-серверов, виртуальные хосты, и т.п. В 1999 году появился протокол HTTP/1.1 (RFC-2616), который был лишен этих недостатков.

HTTP-серверы и клиенты

HTTP-сервером может быть либо web-сервер, который принимает и обрабатывает запросы от клиентов и отправляет им ответы, либо промежуточный proxy-сервер, который принимает запрос от клиента, связывается с другим сервером, пересылает ему принятый запрос, и возвращает полученный ответ клиенту. HTTP-клиентом может быть либо клиентское приложение (browser и др.), либо proxy-сервер, который после принятия запроса от клиента сам связывается с другими серверами в режиме клиента.

Для передачи информации между клиентом и сервером используется транспортный протокол TCP. Стандартный номер порта для HTTP80, но могут использоваться и другие порты (например, распространенные proxy-серверы используют порт 3128 или, реже, 8080).

HTTP-сообщения

Обмен информацией между клиентом и сервером осуществляется в виде http-сообщений (http-message). HTTP-сообщение может быть запросом от клиента к серверу или ответом сервера клиенту. Оно имеет следующий формат:

start-line

message-header

(пустая строка)

message-body

Первая строка http-сообщения (start-line) определяет http-запрос (http-request) или http-ответ (http-response).

Message-header –это заголовок сообщения, состоящий из нуля или более строк. В заголовке может быть передана метаинформация, описывающая передаваемые данные, информация о соединении между клиентом и сервером и другие служебные данные. Все строки заголовка имеют вид Параметр: значение”.

Message-body –это тело http-сообщения, содержащее передаваемые данные. Тело сообщения отделяется от заголовка пустой строкой. В некоторых случаях (в зависимости от типа http-запроса или ответа) тело сообщения может отсутствовать; при этом пустая строка после заголовка сообщения передается в любом случае.

HTTP-запрос

HTTP-запрос (http-request) –это сообщение от клиента к серверу, содержащее метод обращения к запрашиваемому ресурсу, идентификатор ресурса, версию протокола и (для некоторых методов) блок информации, передаваемой от клиента к серверу в теле сообщения.

Первая строка http-запроса (start-line) называется строкой запроса (request-line). Она состоит из трех слов, разделенных пробелами:

Request-method Request-URI HTTP-Version

Request-method задает метод обращения к указанному ресурсу. Протокол HTTP позволяет работать со следующими методами:

Метод

Описание

GET

Клиент запрашивает у сервера ресурс с указанным идентификатором. Тело сообщения в этом запросе отсутствует. В ответ на запрос GET сервер отправляет клиенту запрошенную информацию.

HEAD

Клиент запрашивает у сервера ресурс с указанным идентификатором. Тело сообщения в этом запросе отсутствует. В ответ на запрос HEAD сервер отправляет клиенту только заголовок запрошенной информации, оставляя тело сообщения пустым.

POST

Клиент отправляет серверу информацию, которая, как правило, поступает на обработку программе, заданной указанным идентификатором.

PUT

Клиент отправляет серверу информацию, которую сервер сохраняет в файле с указанным идентификатором.

DELETE

Клиент запрашивает у сервера удаление файла с указанным идентификатором.

OPTIONS

Метод OPTIONS представляет собой запрос информации о коммуникационных опциях, доступных при обращении к указанному ресурсу. Ответ сервера не должен содержать никакой информации, кроме коммуникационных опций.

CONNECT

Сервер должен установить соединение с другим сервером, на который указывает идентификатор ресурса, и передавать всю информацию, получаемую от клиента указанному серверу, и информацию от того сервера –клиенту. Этот метод может быть использован только при связи с proxy-серверами.

TRACE

Метод TRACE предназначен для отладки. В ответ на такой запрос сервер должен вернуть в теле ответа весь запрос клиента.

Request-URI задает идентификатор ресурса (Uniform Resource Identifier), к которому происходит обращение. Идентификатор ресурса может указывать как на некоторый файл данных (в этом случае, например, по запросу GET сервер отправит клиенту содержимое этого файла), так и на какую-либо программу на сервере (в этом случае на запрос GET клиенту будет отправлены данные, полученные в результате работы указанной программы), а также на некоторые другие объекты (например, в методах OPTIONS и CONNECT).

В поле HTTP-Version указывается версия протокола HTTP, используемая в этом сеансе связи. В настоящее время используются версии “HTTP/1.0” и “HTTP/1.1”.

Пример простейшего HTTP-запроса (без заголовка и без тела сообщения):

GET http://www.spb.ru/ HTTP/1.0

HTTP-ответ

HTTP-ответ (http-response) –это сообщение, отправляемое сервером клиенту в ответ на его запрос. Первая строка http-ответа (start-line) называется строкой статуса (status-line). Она состоит из трех полей, разделенных пробелами: версии протокола, числового кода ответа и текстового комментария. После строки статуса, в соответствии с форматом http-сообщения, следует заголовок ответа и (после пустой строки) тело сообщения, которое для некоторых запросов может отсутствовать.

После отправки http-ответа сервер может закрыть TCP-соединение, по которому осуществляется обмен информацией с клиентом, или же оставить его открытым; во втором случае клиент может отправлять новые запросы по тому же соединению. Сервер сообщает о закрытии или незакрытии соединения в строках заголовка ответа “Connection” и “Keep-Alive”. По умолчанию в протоколе HTTP/1.0 после пересылки http-запроса и http-ответа соединение закрывается, а в протоколе HTTP/1.1 соединение остается открытым для пересылки других запросов и ответов, однако это правило может быть изменено с помощью указания в заголовке запроса строки “Connection: Сlose” или “Connection: Keep-Alive”.

Коды ответов http-сервера

Числовой код ответа сервера (status-code) –это трехзначное десятичное число. По его значению  клиент может определить, был ли обработан его запрос и спланировать свои дальнейшие действия. Ответы сервера делятся на пять классов (по первой цифре кода):

  1.  Informational –информационные (запрос был получен, выполнение запрошенной операции продолжается);
  2.  Successfulозначающие, что запрос был успешно получен, распознан и обработан сервером;
  3.  Redirection – переренаправляющие (для окончания выполнения запроса требуются дополнительные действия;
  4.  Client Error –ошибка клиента (например, запрос содержит синтаксическую ошибку или клиент пытается обратиться к недопустимому ресурсу, и т.п.);
  5.  Server Error –ошибка на сервере (сервер не может обработать корректный запрос клиента).

Различные варианты кодов ответов сервера приведены в таблице:

Класс

Код

Комментарий

1xx - Informational

100

Continue

101

Switching Protocols

2xx –Successful

200

OK

201

Created

202

Accepted

203

Non-Authoritative Information

204

No Content

205

Reset Content

206

Partial Content

3xx –Redirection

300

Multiple Choices

301

Moved Permanently

302

Found (Moved Temporarily)

303

See Other

304

Not Modified

305

Use Proxy

307

Temporary Redirect

Класс

Код

Комментарий

4xx –Client Error

400

Bad Request

401

Unauthorized

402

Payment Required

403

Forbidden

404

Not Found

405

Method Not Allowed

406

Not Acceptable

407

Proxy Authentication Required

408

Request Time-out

409

Conflict

410

Gone

411

Length Required

412

Precondition Failed

413

Request Entity Too Large

414

Request-URI Too Large

415

Unsupported Media Type

416

Requested range not satisfiable

417

Expectation Failed

5xx –Server Error

500

Internal Server Error

501

Not Implemented

502

Bad Gateway

503

Service Unavailable

504

Gateway Time-out

505

HTTP Version not supported


 

А также другие работы, которые могут Вас заинтересовать

25159. Суспільно-культурологічні засади еліністично-римської філософії, її періодизація 30.5 KB
  В стоїцизмі знаходить своє обґрунтування натурфілософія епохи еллінізму. Необхідно обґрунтувати ідеал внутрішньої свободи відбувається обґрунтування становища людини в новому світі світі монархії деспотичний режим. Але система обґрунтування в різних школах була різна. Головна задача філософії – обґрунтування та досягнення щастя людини.
25160. Єдність та багатоманітність історії як філософсько-історична проблема 29 KB
  Єдність та багатоманітність історії як філософськоісторична проблема. Осягнення всесвітньої історії в її єдності і багатоманітності проявів – головна мета філософії історії. На відміну від дослідження історика який зосереджується на описі одиничних фактів філософське осмислення історії завжди намагається усвідомити ціліснсть історичного процесу. Вихідною при поясненні окремих явищ історії з філософсько – історичної позиції є ідея закономірності історичного розвитку і саме вона становить фундамент для побудови загального...
25161. Ідеологія, її місце в житті суспільства 26 KB
  В ній з більшою чи меншою адекватністю виражено їх соціальне становище колективний інтерес історичну еволюцію сучасний стан можливі перспективи розвитку€ Можна визначити ряд характеристик ідеології з метою кращого усвідомлення даного феномену: завжди дає цілісну картину світу акцентуючи увагу на місці і ролі людини в цьому світі; інтерферує знання отримані попередніми поколіннями; стимулює і направляє людську поведінку інтегруючи суспільні дії; є організуючою формою громадського життя; в цілому визначає перетворення розвиток і...
25162. Ф.Шеллінг про місце натурфілософії в системі знання 25.5 KB
  Система трансцендентального ідеалізму – це шлях від суб’єкта до об’єкта. А натурфілософія – це шлях від об’єкта до суб’єкта. А як в природі зародилося це ідеальне Цим ідеальним є дух або безкінцевий суб’єкт. В абсолютному розумі суб'єкт і об'єкт нерозривно пов'язані створюють цілісну нерозрізнюваність суб'єктивного й об'єктивного .
25163. Концепція локальних цивілізацій Тойнбі 27 KB
  Концепція локальних цивілізацій Тойнбі Заперечення лінійної універсальної моделі історії. Критика класичної теорії історії Тойнбі – культурноцивілізаційні моделі історії спираючись на доробок Шпенглера створив концепцію коловороту локальних цивілізацій; одиниця аналізу локальна цивілізація 21 Формування розвиток та занепад локальних цивілізацій Відмова від ідеї універсалізму історії і утвердження ідеї полілінійності варіативності багатоманітних історичних систем Майбутнє – не передбачуване залежить від вибору який робить те чи інше...
25164. Співвідношення науки і філософії в Античній культурі 22.5 KB
  А через досвід у людей виникає наука та мистецтво під мистецтвом в цьому контексті розуміється філософія. Та найвищою мудрістю яку Арістотель визначає як науку про граничні причини та начала є філософія. 1а філософія – знання про істину; це наука що досліджує суще як таке а також те що йому властиве само по собі. 1а філософія бажана заради самої себе і заради пізнання а не ізза корисності.
25165. Проблема істини у філософії. Гносеологічне і онтологічне розуміння істини. (за Коретом) 24 KB
  Проблема істини у філософії. Гносеологічне і онтологічне розуміння істини. за Коретом Австрійський філософ Корет виокремлює 3 види істини: логічну онтічну та онтологічну. З цього приводу Корет виділяє 3 концепції істини: кореспондентна відповідність пізнання і судження з предметом іншими словами це те що дійсно є консенсусна дещо вважається істинним якщо компетентні в цій області судді погодяться з цим та когерентна нове знання не має суперечити вже існуючому має узгоджуватися з ним.
25166. Проблема істини у філософії. Гносеологічне і онтологічне розуміння істини 32.5 KB
  Проблема істини у філософії. Гносеологічне і онтологічне розуміння істини. Класичне визначення істини яке потім стало традиційним у філософії дав Арістотелькореспондентська теорія істини визначивши істину як відповідність наших знань дійсності. Це визначення істини визнавали такі мислителі як Аквінський Гольбах Гегель Фейєрбах а також Маркс.
25167. Філософські засади гуманітарного знання 28 KB
  Філософські засади гуманітарного знання Тривалий час для філософії головним напрямком орієнтації були ідеали природничого знання точність об’єктивність повторюваність результату. Проте досить давно було підміченим що значна частина гуманітарного знання яке отримує своє коріння в культурі і з яким дуже тісно виявляється пов’язаним філософське знання не знаходить адекватного відображення в теорії і методології природничого знання. Головні проблеми гуманітарного знання властиві також і філософії – пізнавальне і ціннісне відношення людини...