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

5 Ъбртпу (Request).

Уппвэеойе ъбртпуб пф лмйеофб л уетчетх упдетцйф ч ретчпк уфтпле: нефпд, лпфптщк охцоп ртйнеойфш л теухтух, йдеофйжйлбфпт теухтуб й йурпмшъхенха четуйа ртпфплпмб.

           Request       = Request-Line              ; Тбъдем 5.1
                           *( general-header         ; Тбъдем 4.5
                            | request-header         ; Тбъдем 5.3
                            | entity-header )        ; Тбъдем 7.1
                           CRLF
                           [ message-body ]          ; Тбъдем 7.2

5.1 Уфтплб ъбртпуб (Request-Line).

Уфтплб ъбртпуб (Request-Line) обюйобефус у мелуенщ нефпдб, ъбфен умедхеф ъбртбыйчбенщк URI (Request-URI), четуйс ртпфплпмб й CRLF. Ьфй ьменеофщ тбъдемсафус SP. Ч уфтпле ъбртпуб (Request-Line) ое дпрхуфйнщ CR й LF, йулмаюеойе упуфбчмсеф лпоеюобс рпумедпчбфемшопуфш CRLF.

          Request-Line   = Method SP Request-URI SP HTTP-Version CRLF

5.1.1 Нефпд (Method).

Мелуенб нефпдб хлбъщчбеф нефпд, лпфптщк охцоп ртйнеойфш л теухтух, йдеофйжйгйтпчбоопнх ъбртбыйчбенщн URI (Request-URI). Нефпд юхчуфчйфемео л тезйуфтх.

          Method         = "OPTIONS"                ; Тбъдем 9.2
                         | "GET"                    ; Тбъдем 9.3
                         | "HEAD"                   ; Тбъдем 9.4
                         | "POST"                   ; Тбъдем 9.5
                         | "PUT"                    ; Тбъдем 9.6
                         | "DELETE"                 ; Тбъдем 9.7
                         | "TRACE"                  ; Тбъдем 9.8
                         | extension-method

          extension-method = token

Урйупл нефпдпч, ртйнеойнщи л теухтух, нпцеф вщфш хлбъбо ч рпме ъбзпмпчлб Allow (тбъдем 14.7). Чпъчтбыбенщк лпд упуфпсойс пфчефб чуездб уппвэбеф лмйеофх, дпрхуфйн мй нефпд дмс теухтуб ч обуфпсэее чтенс, фбл лбл обвпт дпрхуфйнщи нефпдпч нпцеф йънеосфшус дйобнйюеулй. Уетчетбн УМЕДХЕФ чпъчтбфйфш лпд упуфпсойс 405 (Нефпд ое дпъчпмео, Method Not Allowed), еумй нефпд йъчеуфео уетчетх, оп ое ртйнеойн дмс ъбртпыеоопзп теухтуб, й 501 (Ое тебмйъпчбоп, Not Implemented), еумй нефпд ое тбурпъобо ймй ое тебмйъпчбо уетчетпн. Урйупл нефпдпч, йъчеуфощи уетчетх, нпцеф вщфш хлбъбо ч рпме ъбзпмпчлб пфчефб Public (тбъдем 14.35).

Нефпдщ GET й HEAD ДПМЦОЩ рпддетцйчбфшус чуенй хойчетубмшощнй (general-purpose) уетчетбнй. Пуфбмшоще нефпдщ пргйпобмшощ; пдоблп, еумй чщыехрпнсохфще нефпдщ тебмйъпчбощ, фп пой ДПМЦОЩ йнефш уенбофйлх, прйубооха ч тбъдеме 9.

5.1.2 Ъбртбыйчбенщк URI (Request-URI).

Ъбртбыйчбенщк URI (Request-URI) - ьфп Едйоппвтбъощк Йдеофйжйлбфпт Теухтуб (URL, тбъдем 3.2), лпфптщк йдеофйжйгйтхеф теухту ъбртпуб.

          Request-URI    = "*" | absoluteURI | abs_path

Фтй пргйй дмс ъбртбыйчбенпзп URI (Request-URI) ъбчйусф пф ибтблфетб ъбртпуб. Ъчеъдпюлб "*" пъобюбеф, юфп ъбртпу пвтбэбефус ое л урегйжйюеулпнх теухтух, б л уетчетх оерпутедуфчеооп, й дпрхулбефус фпмшлп ч фпн умхюбе, лпздб йурпмшъхенщк нефпд ое пвсъбфемшоп пвтбэбефус л теухтух. Ч лбюеуфче ртйнетб:

          OPTIONS * HTTP/1.1

absoluteURI оепвипдйн, лпздб ъбртпу ртпйъчпдйфус юетеъ ртплуй-уетчет. Ртплуй-уетчет ретеобртбчмсеф ъбртпу об уетчет ймй пвумхцйчбеф езп, рпмшъхсуш льыен, й чпъчтбэбеф пфчеф. Пвтбфйфе чойнбойе, юфп ртплуй-уетчет НПЦЕФ ретеумбфш ъбртпу дтхзпнх ртплуй-уетчетх ймй оерпутедуфчеооп уетчетх, пртедемеоопнх absoluteURI. Юфпвщ йъвецбфш ъбгйлмйчбойс ъбртпуб ртплуй-уетчет ДПМЦЕО вщфш урпупвео тбурпъобчбфш чуе йнеоб уетчетб, члмаюбс мавще руечдпойнщ, мплбмшоще тбъопчйдопуфй, й юйумпчще IP бдтеуб. Request-Line нпцеф вщфш, обртйнет, фблйн:

          GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1

Юфпвщ пвеуреюйфш ретеипд л absoluteURI чп чуеи ъбртпуби ч вхдхэйи четуйси HTTP, чуе HTTP/1.1 уетчетщ ДПМЦОЩ ртйойнбфш absoluteURI ч ъбртпуби, ипфс HTTP/1.1 лмйеофщ вхдхф зеоетйтпчбфш йи фпмшлп ч ъбртпуби л ртплуй-уетчетбн.

Обйвпмее пвэбс жптнб Request-URI - фб, лпфптбс йурпмшъхефус дмс йдеофйжйлбгйй теухтуб об ретчпобюбмшопн уетчете ймй ымаъе. Ч ьфпн умхюбе бвупмафощк рхфш URI (унпфтйфе тбъдем 3.2.1, abs_path) ДПМЦЕО вщфш ретедбо лбл Request-URI, б уефечпе тбурпмпцеойе URI (net_loc) ДПМЦОП вщфш ретедбоп ч рпме ъбзпмпчлб Host. Дмс рпумедоезп ртйнетб лмйеоф, цембаэйк рпмхюйфш теухту оерпутедуфчеооп у ретчпобюбмшопзп уетчетб дпмцео упъдбфш TCP упедйоеойе об 80 рптф ипуфб "www.w3.org" й рпумбфш уфтплй:

          GET /pub/WWW/TheProject.html HTTP/1.1
          Host: www.w3.org
й дбмее пуфбфпл ъбртпуб. Пвтбфйфе чойнбойе, юфп бвупмафощк рхфш ое нпцеф вщфш рхуфщн; еумй птйзйобмшощк URI рхуф, фп по ДПМЦЕО ъбртбыйчбфшус лбл "/" (лптоечпк лбфбмпз уетчетб).

Еумй ртплуй-уетчет рпмхюбеф ъбртпу веъ рхфй ч Request-URI, й нефпд ъбртпуб дпрхулбеф жптнх ъбртпуб "*", фп рпумедойк ртплуй-уетчет ч герпюле ъбртпупч ДПМЦЕО ретедбфш ъбртпу, ч лпфптпн Request-URI тбчео "*". Обртйнет ъбртпу

          OPTIONS http://www.ics.uci.edu:8001 HTTP/1.1
вщм вщ ретедбо ртплуй-уетчетпн ч чйде
          OPTIONS * HTTP/1.1
          Host: www.ics.uci.edu:8001
рпуме упедйоеойс у рптфпн 8001 ипуфб "www.ics.uci.edu".

Request-URI ретедбефус ч жптнбфе, пртедемеоопн ч тбъдеме 3.2.1. Ретчпобюбмшощк уетчет ДПМЦЕО делпдйтпчбфш Request-URI, юфпвщ ртбчймшоп йофетртефйтпчбфш ъбртпу. Уетчетбн УМЕДХЕФ пфчеюбфш об оедпрхуфйнще Request-URI уппфчефуфчхаэйн лпдпн упуфпсойс.

Ч ъбртпуби, лпфптще ретедбафус дбмее, ртплуй-уетчетб ойлпздб ОЕ ДПМЦОЩ ретеъбрйущчбфш юбуфш "abs_path" ъбртбыйчбенпзп URI (Request-URI), ъб йулмаюеойен умхюбс, пфнеюеоопзп чщые, лпздб рхуфпк abs_path ъбнеосефус об "*", оеъбчйуйнп пф чохфтеооек тебмйъбгйй ртплуй-уетчетб.

Пвтбфйфе чойнбойе: ртбчймп "ойюфп ое ретеъбрйущчбфш" ртедпитбосеф ртплуй-уетчетб пф йънеоеойс ъобюеойс ъбртпуб, ч лпфптпн ретчпобюбмшощк уетчет оертбчймшоп йурпмшъхеф ое ъбтеъетчйтпчбооще уйнчпмщ URL дмс учпйи гемек. Тебмйъбфптбн умедхеф ъобфш, юфп оелпфптще дп-HTTP/1.1 ртплуй-уетчетб, лбл йъчеуфоп, ретеъбрйущчбмй Request-URI.

5.2 Теухту, йдеофйжйгйтхенщк ъбртпупн.

Ретчпобюбмшоще HTTP/1.1 уетчетб ДПМЦОЩ хюйфщчбфш, юфп фпюощк теухту, йдеофйжйгйтпчбоощк йофетоеф-ъбртпупн пртедемсефус йуумедпчбойен лбл Request-URI, фбл й рпмс ъбзпмпчлб Host.

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

Ретчпобюбмшощк уетчет, лпфптщк тбъмйюбеф теухтущ, пуопчбооще об ъбртпыеоопн ипуфе (йопздб объщчбенще чйтфхбмшощнй ипуфбнй ймй vanity hostnames) ДПМЦЕО йурпмшъпчбфш умедхаэйе ртбчймб дмс пртедемеойс ъбртпыеоопзп ч HTTP/1.1 ъбртпуе теухтуб:

  1. Еумй Request-URI - ьфп absoluteURI, фп ипуф - ьфп юбуфш Request-URI. Мавпе ъобюеойе рпмс ъбзпмпчлб Host ч ъбртпуе ДПМЦОП йзоптйтпчбфшус.
  2. Еумй Request-URI - ое absoluteURI, б ъбртпу упдетцйф рпме ъбзпмпчлб Host, фп ипуф пртедемсефус ъобюеойен рпмс ъбзпмпчлб Host.
  3. Еумй ипуфб, пртедемеоопзп ртбчймбнй 1 ймй 2 ое ухэеуфчхеф об уетчете, лпд упуфпсойс пфчефб ДПМЦЕО вщфш 400 (Йурптюеоощк Ъбртпу, Bad Request).

Рпмхюбфемй HTTP/1.0 ъбртпуб, ч лпфптпн оедпуфбеф рпмс ъбзпмпчлб Host, НПЗХФ рщфбфшус йурпмшъпчбфш ьчтйуфйлх (обртйнет, йуумедпчбфш рхфш ч URI об ртеднеф хойлбмшопуфй об лблпн-мйвп йъ ипуфпч) юфпвщ пртедемйфш лблпк фпюоп теухту ъбртбыйчбефус.

5.3 Рпмс ъбзпмпчлб ъбртпуб.

Рпмс ъбзпмпчлб ъбртпуб рпъчпмсаф лмйеофх ретедбчбфш уетчетх дпрпмойфемшоха йожптнбгйа п ъбртпуе й п убнпн лмйеофе. Ьфй рпмс декуфчхаф лбл нпдйжйлбфптщ ъбртпуб у уенбофйлпк, ьлчйчбмеофопк рбтбнефтбн чщъпчб нефпдпч ч същлби ртпзтбннйтпчбойс.

          request-header = Accept                   ; Тбъдем 14.1
                         | Accept-Charset           ; Тбъдем 14.2
                         | Accept-Encoding          ; Тбъдем 14.3
                         | Accept-Language          ; Тбъдем 14.4
                         | Authorization            ; Тбъдем 14.8
                         | From                     ; Тбъдем 14.22
                         | Host                     ; Тбъдем 14.23
                         | If-Modified-Since        ; Тбъдем 14.24
                         | If-Match                 ; Тбъдем 14.25
                         | If-None-Match            ; Тбъдем 14.26
                         | If-Range                 ; Тбъдем 14.27
                         | If-Unmodified-Since      ; Тбъдем 14.28
                         | Max-Forwards             ; Тбъдем 14.31
                         | Proxy-Authorization      ; Тбъдем 14.34
                         | Range                    ; Тбъдем 14.36
                         | Referer                  ; Тбъдем 14.37
                         | User-Agent               ; Тбъдем 14.42

Йнеоб рпмек ъбзпмпчлб ъбртпуб (Request-header) нпзхф вщфш обдецоп тбуыйтеощ фпмшлп ч упюефбойй у йънеоеойен четуйй ртпфплпмб. Пдоблп, опчще ймй ьлуретйнеофбмшоще рпмс ъбзпмпчлб нпзхф рпмхюйфш уенбофйлх рпмек ъбзпмпчлб ъбртпуб (Request-header), еумй чуе уфптпощ упедйоеойс тбурпъобаф йи лбл рпмс ъбзпмпчлб ъбртпуб (Request-header). Оетбурпъобооще рпмс ъбзпмпчлб пвтбвбфщчбафус лбл рпмс ъбзпмпчлб пв®елфб (entity-header).


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


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