объбд | упдетцбойе | чретед

8 Упедйоеойс (Connections).

8.1 Рпуфпсооще упедйоеойс (Persistent Connections).

8.1.1 Гемш.

Дп рпуфпсоощи упедйоеойк дмс ъбртпуб лбцдпзп URL хуфбобчмйчбмпуш пфдемшопе TCP упедйоеойе, юфп хчемйюйчбмп обзтхълх об HTTP уетчетб й чщъщчбмп ъбзтхълх Йофетоефб. Йурпмшъпчбойе чуфтпеоощи йъпвтбцеойк й дтхзйи учсъбоощи дбоощи юбуфп фтевхеф пф лмйеофб дембфш оеулпмшлп ъбртпупч л пдопнх уетчетх ъб лптпфлйк ртпнецхфпл чтенеой. Йуумедпчбойс ртпвмен ьжжелфйчопуфй фблпзп теыеойс дпуфхрощ ч [30][27]; бобмйъ й теъхмшфбфщ тебмйъбгйй ртпфпфйрб обипдсфус ч [26].

Рпуфпсооще HTTP упедйоеойс йнеаф тсд ртейнхэеуфч:

HTTP тебмйъбгйсн УМЕДХЕФ тебмйъпчщчбфш рпуфпсооще упедйоеойс.

8.1.2 Пвэее прйубойе.

Ъобюйфемшопе пфмйюйе HTTP/1.1 пф впмее тбоойи четуйк HTTP упуфпйф ч фпн, юфп рпуфпсооще упедйоеойс счмсафус ъбдбоощн рп хнпмюбойа рпчедеойен мавпзп HTTP упедйоеойс. Фп еуфш еумй ое пвпъобюеоп йопзп, лмйеоф нпцеф уюйфбфш, юфп уетчет рпддетцйф рпуфпсоопе упедйоеойе.

Рпуфпсооще упедйоеойс пвеуреюйчбаф неибойън, упзмбуоп лпфптпнх лмйеоф й уетчет нпзхф уппвэйфш п тбътщче TCP упедйоеойс. Ьфп уйзобмйъйтхефус ртй рпнпэй йурпмшъпчбойс рпмс ъбзпмпчлб Connection. Ртй рпмхюеойй уппвэеойс п тбътщче упедйоеойс лмйеоф ОЕ ДПМЦЕО рпущмбфш впмшые ъбртпупч рп ьфпнх упедйоеойа.

8.1.2.1 Пвухцдеойе (Negotiation).

HTTP/1.1 уетчет НПЦЕФ уюйфбфш, юфп HTTP/1.1 лмйеоф ое ртедрпмбзбеф рпддетцйчбфш рпуфпсоопе упедйоеойе, еумй рпумбоощк ч ъбртпуе ъбзпмпчпл Connection упдетцйф мелуенх упедйоеойс (connection-token) "close". Еумй уетчет теыбеф ъблтщфш упедйоеойе оенедмеооп рпуме рпущмлй пфчефб, фп енх УМЕДХЕФ рпумбфш ъбзпмпчпл Connection, лпфптщк упдетцйф мелуенх упедйоеойс (connection-token) "close".

HTTP/1.1 лмйеоф НПЦЕФ пцйдбфш, юфп упедйоеойе пуфбоефус пфлтщфщн, оп дпмцео теыйфш пуфбчмсфш мй езп пфлтщфщн об пуопчбойй фпзп, упдетцйф мй пфчеф уетчетб ъбзпмпчпл Connection у мелуенпк упедйоеойс "close". Ч умхюбе, еумй лмйеоф ое ипюеф рпддетцйчбфш упедйоеойе дмс рпумедхаэйи ъбртпупч, енх УМЕДХЕФ рпумбфш ъбзпмпчпл Connection, упдетцбэйк мелуенх упедйоеойс "close".

Еумй лмйеоф ймй уетчет рпущмбеф мелуенх ъблтщфйс упедйоеойс "close" ч ъбзпмпчле Connection, фп ъбртпу уфбопчйфус рпумедойн ч упедйоеойй.

Лмйеофбн й уетчетбн ОЕ УМЕДХЕФ уюйфбфш, юфп рпуфпсоопе упедйоеойе рпддетцйчбефус HTTP четуйснй, неошыйнй юен 1.1, еумй ьфп ое хлбъбоп счоп. Унпфтйфе тбъдем 19.7.1 у впмее рпдтпвопк йожптнбгйек п пвтбфопк упчнеуфйнпуфй у HTTP/1.0 лмйеофбнй.

Юфпвщ упедйоеойе пуфбчбмпуш рпуфпсоощн, чуе уппвэеойс, ретедбчбенще рп оенх дпмцощ йнефш убнппртедемеооха (self-defined) дмйох уппвэеойс (фп еуфш, ое пртедемсенха ъблтщфйен упедйоеойс), лбл прйубоп ч тбъдеме 4.4.

8.1.2.2 Лпочекетобс пвтбвпфлб (Pipelining).

Лмйеоф, лпфптщк рпддетцйчбеф рпуфпсооще упедйоеойс НПЦЕФ "ртпйъчеуфй лпочекетоха пвтбвпфлх" ъбртпупч (фп еуфш, рпущмбфш оеулпмшлп ъбртпупч ое пцйдбс пфчефб об лбцдщк). Уетчет ДПМЦЕО рпумбфш пфчефщ об ьфй ъбртпущ ч фпн це убнпн рптсдле, ч лблпн вщмй рпмхюеощ ъбртпущ.

Лмйеофщ, лпфптще рпддетцйчбаф рпуфпсооще упедйоеойс й ртпйъчпдсф лпочекетоха пвтбвпфлх оенедмеооп рпуме хуфбопчмеойс упедйоеойс, ДПМЦОЩ вщфш зпфпчщ рпчфптйфш упедйоеойе, еумй ретчбс рпрщфлб лпочекетопк пвтбвпфлй дбмб увпк. Еумй лмйеоф дембеф фблпк рпчфпт, по ОЕ ДПМЦЕО ртпйъчпдйфш лпочекетоха пвтбвпфлх ртецде, юен хъобеф, юфп упедйоеойе рпуфпсоопе. Лмйеофщ ДПМЦОЩ фблце вщфш зпфпчщ уопчб рпумбфш ъбртпущ, еумй уетчет ъблтщчбеф упедйоеойе ретед рпущмлпк чуеи уппфчефуфчхаэйи пфчефпч.

8.1.3 Ртплуй-уетчетб (Proxy Servers).

Пюеош чбцоп, юфпвщ ртплуй-уетчетб ртбчймшоп чщрпмосмй учпкуфчб рпмек ъбзпмпчлб Connection, лбл пртедемеоп ч 14.2.1.

Ртплуй-уетчет ДПМЦЕО уппвэбфш п рпуфпсоощи упедйоеойси пфдемшоп учпйн лмйеофбн й пфдемшоп ретчпобюбмшощн уетчетбн (ймй дтхзйн ртплуй-уетчетбн), лпфптще у ойн упедйоеощ. Лбцдпе рпуфпсоопе упедйоеойе ртйнеосефус фпмшлп л пдопк фтбоурптфопк учсъй.

Ртплуй-уетчет ОЕ ДПМЦЕО хуфбобчмйчбфш рпуфпсоопе упедйоеойе у HTTP/1.0 лмйеофпн.

8.1.4 Ртблфйюеулйе cпзмбыеойс (Practical Considerations).

Уетчетб пвщюоп йнеаф оелпфптпе ъобюеойе чтенеой пцйдбойс, рпуме лпфптпзп пой ое рпддетцйчбаф оеблфйчопе упедйоеойе. Ртплуй-уетчетб нпзхф дембфш ьфп ъобюеойе впмее чщуплйн, фбл лбл, четпсфоп, лмйеоф удембеф впмшыее лпмйюеуфчп упедйоеойк юетеъ ьфпф це уетчет. Йурпмшъпчбойе рпуфпсоощи упедйоеойк ое ччпдйф ойлблйи пзтбойюеойк об ртпдпмцйфемшопуфш ьфпзп чтенеой пцйдбойс лбл дмс лмйеофб, фбл й дмс уетчетб.

Лпздб х лмйеофб ймй уетчетб йуфелмп чтенс пцйдбойс, енх УМЕДХЕФ ртпйъчеуфй йъсэопе ъблтщфйе фтбоурптфопзп упедйоеойс. Лбл лмйеофбн, фбл й уетчетбн УМЕДХЕФ рпуфпсооп обвмадбфш ъб дтхзпк уфптпопк об ртеднеф ъблтщфйс упедйоеойс, й уппфчефуфчеооп пфчеюбфш. Еумй лмйеоф ймй уетчет ое пвобтхцйчбеф ъблтщфйс упедйоеойс дтхзпк уфптпопк утбъх, фп ьфп чщъщчбеф ое пртбчдбооха фтбфх теухтупч уефй.

Лмйеоф, уетчет, ймй ртплуй-уетчет НПЗХФ ъблтщфш фтбоурптфопе упедйоеойе ч мавпе чтенс. Обртйнет, лмйеоф НПЦЕФ обюбфш рпущмбфш опчщк ъбртпу ч фп чтенс, лпздб уетчет теыбеф ъблтщфш "веъдекуфчхаэее" упедйоеойе. У фпюлй ътеойс уетчетб, упедйоеойе ъблтщчбефус, ч фп чтенс лбл поп вщмп оеблфйчоп, оп у фпюлй ътеойс лмйеофб, ъбртпу ртпйъпыем.

Ьфп пъобюбеф, юфп лмйеофщ, уетчетщ, й ртплуй-уетчетщ ДПМЦОЩ вщфш ч упуфпсойй пвтбвбфщчбфш буйоитпооще упвщфйс ъблтщфйс. Ртпзтбннопнх пвеуреюеойа лмйеофб УМЕДХЕФ чопчш пфлтщфш фтбоурптфопе упедйоеойе й рпчфптоп ретедбфш ртетчбоощк ъбртпу веъ чъбйнпдекуфчйс у рпмшъпчбфемен, рпулпмшлх нефпд ъбртпуб idempotent (унпфтйфе тбъдем 9.1.2); дтхзйе нефпдщ ОЕ ДПМЦОЩ вщфш рпчфптеощ бчфпнбфйюеулй, ипфс бзеофщ рпмшъпчбфемс НПЗХФ ртедмпцйфш претбфптх чщвпт рпчфптсфш ъбртпу, ймй оеф.

Пдоблп ьфп бчфпнбфйюеулпе рпчфптеойе ОЕ УМЕДХЕФ ртпйъчпдйфш, еумй увпк ртпйуипдйф хце чп чфптпн ъбртпуе.

Уетчетбн чуездб УМЕДХЕФ пфчеюбфш об рп лтбкоек нете об пдйо ъбртпу ч упедйоеойй, еумй ьфп чпънпцоп. Уетчетбн ОЕ УМЕДХЕФ тбътщчбфш упедйоеойе ч уетедйое ретедбюй пфчефб, еумй ое ртедрпмбзбефус уефечпк ймй лмйеофулйк пфлбъ.

Лмйеофбн, йурпмшъхаэйн рпуфпсооще упедйоеойс, УМЕДХЕФ пзтбойюйфш юйумп пдопчтенеоощи упедйоеойк, лпфптще пой хуфбобчмйчбаф у дбоощн уетчетпн. Пдопрпмшъпчбфемшулпнх лмйеофх УМЕДХЕФ хуфбобчмйчбфш нблуйнхн 2 упедйоеойс у мавщн уетчетпн ймй ртплуй-уетчетпн. Ртплуй-уетчетх УМЕДХЕФ пзтбойюйфшус 2*N упедйоеойнй у дтхзйнй уетчетбнй ймй ртплуй-уетчетбнй, зде N - юйумп пдопчтенеооп блфйчощи рпмшъпчбфемек. Ьфй тхлпчпдсэйе ртйогйрщ ртедобъобюеощ дмс хнеошыеойс чтенеой HTTP пфчефб й йъвецбойс ютеънетопк ъбзтхълй Йофетоефб ймй дтхзйи уефек.

8.2 Фтевпчбойс л ретедбюе уппвэеойк.

Пвэйе фтевпчбойс:

Рпуме рпмхюеойс нефпдб, рпдюйоеоопзп ьфйн фтевпчбойсн, пф HTTP/1.1 (ймй впмее рпъдоезп) лмйеофб, HTTP/1.1 (ймй впмее рпъдойк) уетчет ДПМЦЕО мйвп пфчефйфш лпдпн упуфпсойс 100 (Ртпдпмцбфш, Continue) й ртпдпмцбфш юфеойе чипдопзп рпфплб, мйвп пфчефйфш пыйвпюощн лпдпн упуфпсойс. Еумй уетчет пфчефйм пыйвпюощн лпдпн упуфпсойс, фп по НПЦЕФ мйвп ъблтщфш фтбоурптфопе упедйоеойе (TCP), мйвп ртпдпмцбфш юйфбфш й пфвтбущчбфш пуфбчыхаус юбуфш ъбртпуб. По ОЕ ДПМЦЕО чщрпмосфш ъбртпыеоощк нефпд, еумй чпъчтбфйм лпд упуфпсойс пыйвлй.

Лмйеофбн УМЕДХЕФ рпнойфш опнет четуйй HTTP, йурпмшъхенпк уетчетпн рп лтбкоек нете ч рпумедойк тбъ; еумй HTTP/1.1 лмйеоф чуфтеюбм HTTP/1.1 ймй впмее рпъдойк пфчеф пф уетчетб, й чйдйф ъблтщфйе упедйоеойс ретед рпмхюеойен лблпзп-мйвп лпдб упуфпсойс пф уетчетб, лмйеофх УМЕДХЕФ рпчфптйфш ъбртпу веъ чъбйнпдекуфчйс у рпмшъпчбфемен, рпулпмшлх нефпд ъбртпуб idempotent (унпфтйфе тбъдем 9.1.2); дтхзйе нефпдщ ОЕ ДПМЦОЩ вщфш рпчфптеощ бчфпнбфйюеулй, ипфс бзеофщ рпмшъпчбфемс НПЗХФ ртедмпцйфш претбфптх чщвпт рпчфптсфш ъбртпу, ймй оеф. Еумй лмйеоф рпчфптсеф ъбртпу, фп по

Еумй HTTP/1.1 лмйеоф ое чуфтеюбм пфчефб уетчетб четуйй HTTP/1.1 ймй впмее рпъдоек, фп енх умедхеф уюйфбфш, юфп уетчет тебмйъхеф HTTP/1.0 ймй впмее уфбтщк ртпфплпм й ое йурпмшъпчбфш пфчефщ у лпдпн упуфпсойс 100 (Ртпдпмцбфш, Continue). Еумй ч фблпк уйфхбгйй лмйеоф чйдйф ъблтщфйе упедйоеойс ретед рпмхюеойен лблпзп-мйвп пфчефб у лпдпн упуфпсойс пф уетчетб, фп енх УМЕДХЕФ рпчфптйфш ъбртпу. Еумй лмйеоф рпчфптсеф ъбртпу л ьфпнх HTTP/1.0 уетчетх, фп по дпмцео йурпмшъпчбфш умедхаэйк "binary exponential backoff" бмзптйфн, юфпвщ вщфш хчетеоощн ч рпмхюеойй обдецопзп пфчефб:

  1. Йойгйбмйъйтпчбфш опчпе упедйоеойе у уетчетпн.
  2. Ретедбфш ъбзпмпчлй ъбртпуб (request-headers).
  3. Йойгйбмйъйтпчбфш ретенеооха R ртйнетощн чтенеоен ретедбюй йожптнбгйй об уетчет й пвтбфоп (обртйнет об пуопчбойй чтенеой хуфбопчмеойс упедйоеойс), ймй рпуфпсоощн ъобюеойе ч 5 уелход, еумй чтенс ретедбюй ое дпуфхроп.
  4. Чщюйумйфш T = R * (2**N), зде N - юйумп ртедщдхэйи рпчфптпч ьфпзп ъбртпуб.
  5. Мйвп дпцдбфшус пф уетчетб пфчефб у лпдпн пыйвлй, мйвп ртпуфп чщцдбфш T уелход (унпфтс юфп ртпйъпкдеф тбошые).
  6. Еумй пфчефб у лпдпн пыйвлй ое рпмхюеоп, рпуме T уелход ретедбфш фемп ъбртпуб.
  7. Еумй лмйеоф пвобтхцйчбеф, юфп упедйоеойе вщмп ъблтщфп ртецдечтенеооп, фп енх охцоп рпчфптсфш обюйобс у ыбзб 1, рплб ъбртпу ое вхдеф ртйосф, мйвп рплб ое вхдеф рпмхюео пыйвпюощк пфчеф, мйвп рплб х рпмшъпчбфемс ое лпоюйфус фетреойе й по ое ъбчетыйф ртпгеуу рпчфптеойс.

Оеъбчйуйнп пф фпзп, лблбс четуйс HTTP тебмйъпчбоб уетчетпн, еумй лмйеоф рпмхюбеф пыйвпюощк лпд упуфпсойс, фп по

HTTP/1.1 (ймй впмее рпъдоенх) лмйеофх, лпфптщк пвобтхцйчбеф ъблтщфйе упедйоеойс рпуме рпмхюеойс пфчефб у лпдпн упуфпсойс 100 (Ртпдпмцбфш, Continue), оп дп рпмхюеойс пфчефб у дтхзйн лпдпн упуфпсойс, УМЕДХЕФ рпчфптйфш ъбртпу, оп хце ое пцйдбфш пфчефб у лпдпн упуфпсойс 100 (Ртпдпмцбфш, Continue) (оп по НПЦЕФ удембфш фбл, еумй ьфп хртпэбеф тебмйъбгйа).


Copyright  ©  1998 Alex Simonoff (http://www.omsk.com/Leshik/), All Rights Reserved.


объбд | упдетцбойе | чретед