Пловдивски


фигура 174 Директна комуникация Комуникацията да премине през посреднически устройства прокси, шлюз или тунел; фигура 175



Pdf просмотр
страница120/130
Дата02.07.2022
Размер7.37 Mb.
#114742
1   ...   116   117   118   119   120   121   122   123   ...   130
Компютърни мрежо и комуникации
фигура 174 Директна комуникация

Комуникацията да премине през посреднически устройства прокси, шлюз или тунел;
фигура 175 Комуникация чрез посреднически устройства

Посредническо устройство да отговори на заявката като използва кеша си (получава се при нетунелиране на връзката).
фигура 176 Използване на кеширана заявка
Основните съобщения за комуникация са заявка и отговор (таблица
32).
HTTP-message = Request | Response; HTTP/1.1 messages
Форматът им спазва следната структура:
generic-message = start-line
*(message-header CRLF)
CRLF
[ message-body ]
,



232 където:
start-line = Request-Line | Status-Line
Request

Response

Request = Request-Line
*(( general-header
| request-header
| entity-header ) CRLF)
CRLF
[ message-body ]

Response = Status-Line
*(( general-header
| response-header
| entity-header ) CRLF)
CRLF
[ message-body ]

таблица 32 Основни съобщения
*rule - повторение. Пълният вариант на формата е "*element", където е най-малко, а - най-много. Стойността по подразбиране са 0 и безкрайност, което означава, че:

"*(element)" – липсва или се повтаря определени пъти;

"1*element" – най-малко един път;

"1*2element" – един или два пъти.
Използвани съкращения:
LWS = [CRLF] 1*( SP | HT )
CRLF = CR LF
OCTET = <всяка 8-битова поредица от данни>
CHAR = <всеки US-ASCII символ (octets 0 - 127)>
UPALPHA = < всяка US-ASCII главна буква "A".."Z">
LOALPHA = <всяка US-ASCII малка буква "a".."z">
ALPHA = UPALPHA | LOALPHA
DIGIT = <всяка US-ASCII цифра "0".."9">
CTL = <всеки US-ASCII контролен символ (octets 0 - 31) и DEL (127)>
CR =
LF =
SP =
HT =
<"> =
Request-Line = Method SP Request-URI SP HTTP-Version CRLF

Дефинираните методи са:

"OPTIONS" – подава заявка за информация относно параметрите за комуникация. Отговорът не се кешира.

"GET" – извлича информацията от указания URI ресурс

"HEAD" – методът е подобен на „GET“, но отговорът не включва тяло на съобщението (message-body), а само метаинформация включена в заглавната част на единицата.


233

"POST" – използва се за достъп до определена самостоятелна единица, подчинена на актуалния URI за изпращане на данни към сървъра.

"PUT" - заменя всички настоящи представяния на целевия ресурс с каченото съдържание

"DELETE" – подава заявка за изтриване на всички представяния за посочения
URI ресурс

"TRACE" – изпраща loop-back съобщение към посочения ресурс

"CONNECT" - създава тунел към сървъра идентифициран от даден URI.
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Статус кодовете са трицифрени числа с категоризираща първа цифра:

1xx: Informational – получена заявка и продължаващ процес;

2xx: Success – успешно получаване на действията, разбиране и реализиране;

3xx: Redirection – предприемане на по-нататъшни действия за завършване на заявката;

4xx: Client Error – грешен синтаксис или невъзможно изпълнение;

5xx: Server Error – неизпълнение на заявката от страна на сървъра.
Мessage-header на съобщението включва general-header, request- header, response-header, entity-header. Всяка от тях е във формат:
message-header = field-name ":" [ field-value ]

general-header – съдържа полета, които са общи за двата типа съобщения (заявка и отговор) и се прилагат само към съобщението;
Cache-Control – включва директиви, които контролират кеширането при UA клиентите, посредниците и оригиналните сървъри;
Connection – характеризира типа на връзката;
Date – съдържа датата и часа на запитването или отговора;
Pragma – посочва директивите, които могат да се приложат за всеки получател по веригата на отговора или заявката;
Trailer – посочва, че дадено множество от полета на хедъра ще бъдат в трейлъра на съобщението, кодирано на парчета за трансфер (големите потоци се разбиват на парчета - chunks);
Transfer-Encoding – посочва използвания метод за трансфер и кодиране на тялото на съобщението;
Upgrade – указва допълнителните протоколи поддържани от клиента и биха могли да се използват за съвместимост със сървъра,
Via – използва се от посредническите устройства (шлюзове и проксита) за проследяване на препращаните съобщения и използваните протоколи;
Warning – служи за пренос на допълнителна информация относно статуса и трансформацията на съобщението.


234

request-header – пренася допълнителна информация, която не се съдържа в стартовия ред или общия хедър. Полетата са следните:
Accept – специфицира типовете медия, допустими за включване в отговора;
Accept-Charset – определя кодовата таблица на отговора;
Accept-Encoding – указва възможните типове кодиране за съдържанието;
Accept-Language – определя възможните естествени езици за използване;
Authorization – използва се за автентикация на UA;
Expect – специфицира изисквания към сървъра, очаквани от клиента;
From – указва email адреса на потребителя, който използва и контролира UA агента;
Host – хоста и порта на изисквания ресурс;
If-Match – посочва получените, от по-ранна комуникация с този ресурс, единици, които са актуални към момента;
If-Modified-Since – съдържа датата, след която се проверява за актуализация на изисквания ресурс т.е. за проверка на актуалността на кеша.
If-None-Match – условно задава на сървъра да изпълни искания метод само ако една от изброените стойности в този таг се съдържа в таговете за единици в полето Etag;
If-Range – служи за опресняване на единиците в кеша в зависимост от датата;
If-Unmodified-Since – указва на сървъра да изпълни операцията ако ресурса не е променян от посочената дата;
Max-Forwards - въвежда ограничение за броя на препращанията през шлюзове и проксита;
Proxy-Authorization – използва се при идентифициране на клиента пред прокси;
Range – определя част от единицата;
Referer – указва на сървъра URI адреса на ресурса от където е получена заявката;
TE – свързано е с указване на кодировката при трансфер;
User-Agent – съдържа информация за агента, който генерира заявката.

response-header – пренасят допълнителна информация, която не се съдържа в стартовия ред или общия хедър.
Accept-Ranges – дефинира частта от ресурса, която трябва да се приеме като отговор;
Age- неотрицателно десетично число, показващо времето в секунди от последното генериране на заявката (при кеширана такава);
ETag – пренася името на тага на единицата (entity tag), участваща в отговора;
Location – използва се за пренасочване на получателя към ресурс различен от заложеният в заявката;
Proxy-Authenticate – указва схемата и параметрите за автентикация към прокси сървъра. Свързано е с отговор 407 (Proxy Authentication Required);


235
Retry-After – използва се с отговор 503 (Service Unavailable) или 3xx (Redirection) и посочва минималното време на изчакване на потребителския агент преди изпозването на пренасочена връзка. Формат:
Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds )
Server – задава информация за софтуера на оригиналния сървър, обработващ заявката;
Vary – указва, че единицата има няколко представяния и може да варира спрямо специфичните изисквания на заявката;
WWW-Authenticate – включва се при отговор 401 (Unauthorized) и указва схемата и параметрите за автентикация;

entity-header – съдържа информация за тялото на единицата или ресурса от заявката.
Allow – задава множеството от методи поддържани от ресурса, идентифициращ се с използваното URI;
Content-Encoding – указва използвания тип за пренос;
Content-Language – определя естествения език на аудиторията, за която е предназначена единицата;
Content-Length – задава размера на тялото на единицата в октети;
Content-Location – задава ресурсното местоположение на единицата;
Content-MD5 – проверка на целостта на съобщението чрез MD5 резюме;
Content-Range – придружава част от съдържанието на единицата и указва неговото местоположение;
Content-Type – специфицира типа медия на тялото;
Expires – показва датата/часа точно преди изтичане на отговора;
Last-Modified – последната дата/час на модифициране на ресурса.
Message-body на съобщението съдържа информацията, която трябва да се покаже в браузъра.
Http схемата, която се използва за достъпване на мрежов ресурс е във вида:
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Допълнителна информация за протокола може да се получи от документ RFC 2616.


Сподели с приятели:
1   ...   116   117   118   119   120   121   122   123   ...   130




©obuch.info 2024
отнасят до администрацията

    Начална страница