Kuhamisha data kupitia http. Msimbo wa Hali na maelezo yake. HTTP na viunganisho

Itifaki kuu ya kurasa kwenye mtandao ni HTTP. Itifaki hii hutumiwa kila wakati unapotembelea tovuti mpya, wakati maandishi au picha inaonyeshwa kwenye tovuti, unapobofya kwenye viungo.

Mtandao mzima unategemea HTTP, hata kama watumiaji wengi hawajui jinsi HTTP ilivyo maarufu katika maisha yao ya kila siku.

HTTP ni itifaki inayotumika kuhamisha maandishi ya hali ya juu (Itifaki ya Uhamisho ya HyperText).

Mwingiliano kati ya kivinjari chako na seva iliyo na habari inategemea itifaki hii. Shukrani kwa unyenyekevu wake, kivinjari na seva huunganisha haraka sana. Lakini sio lazima tuchunguze maelezo yote ya itifaki; tutaelezea tu kanuni ya msingi ya uendeshaji wake.

Kuna itifaki nyingi unaweza kutumia kwenye mtandao, HTTP ni moja tu ya nyingi, ambayo ina kazi na madhumuni yake.

Ni rahisi sana kwamba tayari unafahamu programu inayohitajika kufanya kazi na HTTP - kivinjari chako.

Bila kujali jina la kivinjari, jina la itifaki daima huongezwa kwenye bar ya anwani kwa default: "http://". Huenda usione maandishi haya ikiwa kivinjari kitaificha. Lakini unahitaji tu kunakili jina la tovuti, pamoja nayo ndani mahali pazuri Itifaki ya HTTP pia itaingizwa.

- Je, kiambishi awali "http://" kinamaanisha nini kabla ya jina la tovuti?
- Hii inamaanisha kuwa unapata rasilimali kupitia itifaki ya HTTP.

Kwa nini itifaki ya HTTP iliundwa?

Kwa msaada wake, hati za maandishi hupitishwa, au, kwa urahisi zaidi, kurasa kwenye tovuti tunazohitaji.

Mteja (kivinjari) hupokea kurasa za wavuti, na seva hutuma kurasa. Teknolojia hii inaitwa teknolojia ya mteja-server.

Shukrani kwa HTTP, imewezekana kusambaza kurasa za wavuti kwenye mtandao. Lakini ni nini kilichomo katika kurasa zenyewe ambazo seva hututuma? Nambari ya HTML ya kawaida inayoingia kwenye kivinjari, ambayo inaweza tu kutafsiri kwa usahihi habari iliyopokelewa na kukuonyesha tovuti iliyokamilishwa.

Huko nyuma mnamo 2006, karibu nusu ya trafiki ya HTTP Marekani Kaskazini ilijumuisha utiririshaji wa sauti na video.

Jinsi HTTP inavyofanya kazi

  1. Kivinjari hutuma ombi kuomba ukurasa wa seva unaotaka.
  2. Seva inapokea ombi na kuanza kutafuta ukurasa.
  3. Kivinjari hupokea jibu kutoka kwa seva na matokeo ya ombi:
    • Msimbo wa ukurasa ulioombwa na maelezo ya huduma - ikiwa ukurasa unapatikana.
    • Msimbo wa hitilafu na maelezo ya huduma katika kesi ya kushindwa.

Wakati kivinjari kinafanya ombi la faili, ombi lina maalum Amri ya HTTP. Ikiwa faili iliyoombwa iko kwenye seva, faili hutumwa. Lakini ukurasa unaopokea unapaswa kuamua ikiwa itaonyesha faili kwenye skrini, ihifadhi kwenye diski, au ufanye kitu kingine na matokeo.

Ili kutambua rasilimali kwenye mtandao, itifaki ya HTTP hutumia URI za kimataifa. Tofauti kati ya HTTP na itifaki zingine ni kwamba haihifadhi hali yake. Hiyo ni, hali kati ya jozi ya ombi-jibu haijahifadhiwa.

HTTP sio itifaki pekee inayotumika kwenye Mtandao. Inatumika pia:

  • FTP (Itifaki ya Uhamisho wa Faili) ni itifaki ya kuhamisha faili.
  • POP (Itifaki ya Ofisi ya Posta) na SMTP (Itifaki Rahisi ya Usafiri wa Barua) - ya kutuma ujumbe Barua pepe.
  • SHTTP (Secure Hypertext Transfer Protocol) ni toleo la HTTP lililosimbwa kwa njia fiche. Taarifa zinazotumwa kupitia itifaki hii zimesimbwa kwa njia fiche. Kwa kawaida, usalama ni muhimu wakati data nyeti inabadilishwa.

Na itifaki zingine ambazo zina mali moja nzuri - zote zinafanya kazi bila kutambuliwa na wewe na mimi.

Machi 1991 - Tim Berners-Lee alipendekeza kutumia HTTP.

Berners-Lee ndiye aliyetengeneza vitu vyote vya kwanza vilivyounganishwa na Mtandao: kivinjari, seva, viungo, tovuti ya kwanza (info.cern.ch) Unaweza kuona jinsi tovuti ya kwanza ilivyokuwa kwa kufuata kiungo.

Matoleo ya HTTP yameboreshwa kwa muda; HTTP 1.1 imekuwa maarufu, ambayo hukuruhusu kuacha unganisho kati ya seva na kivinjari wazi kwa muda mrefu, ambayo ilifanya itifaki kuwa nzuri zaidi.

Mnamo 2015, HTTP/2 ilionekana, ambayo ikawa ya binary, na njia ya habari iligawanywa katika vipande ilibadilika.

Usalama wa HTTP

HTTP yenyewe haimaanishi usimbaji fiche wa habari. Lakini kuna kiendelezi cha itifaki ambacho kinaweza kupakia data ndani Itifaki ya SSL au TLS.

HTTPS (S - Salama) ni suluhisho maarufu ambalo haliruhusu uingiliaji wa taarifa zinazosambazwa na hulinda taarifa dhidi ya mashambulizi ya MITM ya "mtu-katikati" au mashambulizi ya mtu katikati.

MITM kimsingi ni simu iliyoharibika ambayo habari hubadilishwa kimakusudi. Wala mteja wala seva haijui kuhusu uingizwaji.

Je, HTTP inajumuisha nini?

Tumetaja mengi ambayo seva na mteja hutuma na kupokea maombi. Kwa hivyo ni nini kilichomo katika maombi haya? Kila ujumbe wa HTTP una sehemu tatu:

  1. Mstari wa kuanzia, unaobainisha aina ya ujumbe.
  2. Vichwa vinavyobainisha kiini cha ujumbe.
  3. Mwili wa ujumbe, ambao tayari una data muhimu.

Shukrani kwa vipengele vya HTTP, tuliweza kuunda injini za utafutaji, vikao, maduka ya mtandaoni. Biashara ilikuja kwenye mtandao, watoa huduma za mtandao na makampuni mengine ambayo shughuli zao hufanyika kwenye mtandao zilianza kuonekana. Na shukrani zote kwa itifaki ya HTTP, ambayo sasa unaifahamu sana.

Nakala hiyo inaonyesha kiini cha itifaki ya HTTP, na pia inazungumza juu ya mipango tofauti ya uendeshaji wake. Tahadhari maalum inazingatia kiini cha mwingiliano kati ya kivinjari na seva.

Kiini cha jinsi HTTP inavyofanya kazi

Kwanza kabisa, unapaswa kuelewa mchakato wa mwingiliano kati ya seva na kivinjari cha mtumiaji. Ili kuonyesha ukurasa wa tovuti kwenye skrini, kivinjari hutuma ishara ya ombi kwa seva, baada ya hapo maudhui yaliyosimbwa ya tovuti hutoka kwa seva, ambayo hubadilishwa kuwa mtazamo wa kawaida wa tovuti. Kusoma mchakato huu kwa msanidi wa wavuti ni muhimu kwa sababu kwa kuelewa kiini cha mchakato, unaweza kuongeza kasi ya utendaji wa rasilimali yako.

Kubadilishana data kati ya seva na kivinjari hutokea kupitia Itifaki ya HTTP. Kivinjari yenyewe, kutoka kwa mtazamo wa programu, ni Mteja wa HTTP, kwani hutumia itifaki hii wakati wa kutuma maombi na kupokea data ya majibu.

Sasa hebu tufunue kiini cha dhana ya itifaki ya HTTP

HTTP (Itifaki ya Uhamisho wa Maandishi ya Juu)- mchakato kulingana na aina zote za ubadilishanaji wa habari unafanywa kwenye Wavuti ya Ulimwenguni Pote.

Sisi, kama watengenezaji wa wavuti, tunavutiwa tu na mchakato wa kubadilishana na kuonyesha habari.

Itifaki iliyosawazishwa

Ubadilishanaji wa data unafanywa kulingana na mpango wa "mteja-seva". Katika mpango huu, mteja ni kifaa kinachotuma ombi la kutoa taarifa fulani, na seva ni mfumo unaopokea ombi, huichakata na kutuma jibu kwa mteja. Mchakato wa mwingiliano yenyewe unaweza kugawanywa katika hatua mbili: kutuma ombi la HTTP na kupokea jibu la HTTP.

Maombi na majibu hayawezi kusambazwa kwa wakati mmoja; usawazishaji wa mchakato lazima udumishwe. Hiyo ni, uwasilishaji wa jibu utaanza tu baada ya kukamilika kwa kutuma ombi; kazi kwa kanuni tofauti haiwezekani. Ili kuifanya iwe wazi zaidi, hebu tuchore mlinganisho na basi: hutaweza kuitumia hadi ifike kwenye kituo.

Ombi linafanywaje?

Mchakato wa kutuma ombi kwa seva unaweza kugawanywa katika vipengele kadhaa:

  1. Kwanza kabisa, ombi la DNS linafanywa, ambalo lazima libadilishe anwani ya tovuti kutoka kwa muundo wa URI hadi IP (fomu ya nambari ya anwani ya URI). Huu ndio umbizo la anwani linalotumika kwenye Wavuti ya Ulimwenguni Pote.
  2. Baada ya kuamua IP, uunganisho umeanzishwa kati ya seva na mteja wa HTTP.
  3. Kusambaza ombi.
  4. Ucheleweshaji, unaojumuisha kutuma habari kwa seva, kuichakata na kutuma jibu kwa ombi. Watayarishaji programu hupiga simu katika kipindi hiki wakisubiri jibu.
  5. Kupokea jibu la ombi.

Unaweza kufuatilia hatua hizi zote kwa kutumia paneli ya msanidi wa wavuti kwenye kivinjari chako.

Kati ya orodha ya hatua zote, ya kwanza ni ndefu sana. Mwanzoni mwa maendeleo ya itifaki HTTP ilitumia mpango wa usindikaji wa data uliopitwa na wakati, ambao ulitoa kuvunja muunganisho baada ya jibu la ombi linalohitajika kupokelewa. Hii ilipunguza sana mchakato wa kufanya kazi katika nafasi ya mtandao. Hata hivyo, baada ya usanifishaji mpya wa itifaki ilitolewa HTTP toleo la 1.1, hali mpya ya unganisho imepatikana - kuweka-hai, kulingana na ambayo uunganisho umekuwa usioweza kutenganishwa. Matokeo yake, baada ya kusindika ombi la kwanza, huna haja ya kupitia hatua ya kwanza tena, lakini mara moja endelea kwa pili.

noti

Uunganisho unadumishwa tu ndani ya rasilimali moja ya wavuti. Wakati wa kuhamia mwenyeji mwingine, muunganisho umevunjika na hatua ya kwanza inakuwa sehemu muhimu ya mchakato wa usindikaji wa ombi.

Mchakato mrefu zaidi katika itifaki unasubiri jibu. Katika kesi hii, uboreshaji wa vipimo haufanyi chochote kupunguza wakati wa usindikaji. Pia, mchakato huu hauathiriwa kwa njia yoyote na nguvu ya kifaa ambacho rasilimali hutolewa. Kompyuta huingia kwenye mchakato tu katika hatua ya mwisho, wakati jibu limefika na linahitaji kusindika.

Aina hii ya kazi inapunguza nafasi za tovuti hadi sifuri katika ushindani na programu za kompyuta ya mezani. Hii inaleta njia ya kwanza ya kuharakisha tovuti - unahitaji kupunguza idadi ya simu kwa seva iliyoandikwa katika msimbo.

Muunganisho wa HTTP sambamba

Ili kutatua tatizo la muda mrefu wa kusubiri na usumbufu katika mawasiliano na mwenyeji, mpango wa mawasiliano sambamba uliundwa kati ya mteja na seva. Kwa maneno mengine, unaweza kuanzisha uunganisho wakati huo huo na majeshi kadhaa. Watengenezaji wa kawaida HTTP 1.1 Inashauriwa kuunganisha si zaidi ya njia 2 za uunganisho kwa wakati mmoja. Lakini inapaswa kukumbushwa katika akili kwamba vipimo vilianza wakati wa dinosaurs za kale. Sasa vivinjari vinasaidia kwa urahisi mawasiliano na chaneli 4 wakati huo huo kwa chaguo-msingi, na ukichimba kwenye mipangilio ya mteja, takwimu hii inaweza kuongezeka hadi 8.

Kila kituo kinafanya kazi kulingana na mpango wa zamani wa uunganisho, lakini ongezeko la idadi yao imesababisha mabadiliko makubwa katika suala la wakati wa upakiaji wa rasilimali.

Uunganisho wa bomba la HTTP

Pamoja na maendeleo ya teknolojia, mchakato wa mwingiliano kati ya seva na kivinjari ulianza kuendeleza kwa kiasi kikubwa. Mafanikio makubwa katika suala hili yalikuwa uundaji wa mpango wa bomba la kutuma maombi kwa seva (katika asili - Uwekaji bomba wa HTTP) Kulingana na mpango huu, iliwezekana kutuma maombi kadhaa kupitia chaneli moja bila kungoja majibu kwao. Kwa upande mwingine, seva ilianza kutuma majibu kwa kila ombi kwa utaratibu wa kipaumbele.

Shukrani kwa uvumbuzi huu, inawezekana pia kupunguza idadi ya Pakiti za TCP/IP. Kwa hivyo, unaweza kuweka kadhaa kwenye kifurushi kimoja kama hicho Maombi ya HTTP. Matokeo yake, sio tu uendeshaji wa itifaki utaboresha, lakini pia ufanisi wa mtandao kwa ujumla utaongezeka.

Kufupisha

Hivi sasa vipimo HTTP 1.1 ni seti ya sheria zilizopitwa na wakati. Kazi ya uboreshaji wake imekuwa ikiendelea kwa muda mrefu, mfano mkali hizi ni HTTP-NG Na SPDY. Kuendeleza HTTP Inawezekana pia kwa kuboresha lugha ya programu ya tovuti HTML5. Taratibu hizi zote zitaharakisha uendeshaji wa itifaki, lakini utawala wa kupunguza upatikanaji wa seva, ambayo itaongeza kasi ya rasilimali, itakuwa muhimu kila wakati.

Kwa Ulimwengu Mtandao mpana. Itifaki kama hizo ni maandishi yaliyoundwa ambayo hutumia miunganisho ya kimantiki(viungo) kati ya nodi zilizo na data maalum. Kwa hivyo, ni njia ya kubadilishana au kusambaza maandishi ya hypertext.

Itifaki ya HTTP hufanya kazi kama kitendakazi cha jibu la ombi katika muundo wa kompyuta wa seva ya mteja. Kwa hivyo, kivinjari hufanya kama mteja, na mwenyeji wa tovuti ni seva. Mteja anatuma ujumbe Ombi la HTTP kwa seva inayotoa rasilimali fulani(kama vile faili za HTML na nyenzo zingine) na kisha kurudisha ujumbe wa majibu. Jibu lina maelezo kuhusu ombi, na pia linaweza kuwa na maudhui yaliyoombwa katika mwili wa ujumbe.

Kivinjari ni mfano wa msingi wa wakala wa mtumiaji (mteja). Aina zingine za mawakala wa watumiaji ni pamoja na programu inayotumiwa kuorodhesha na watoa huduma wa utafutaji, maombi ya simu na nyenzo zingine zinazotumia au kuonyesha maudhui ya wavuti.

Itifaki ya HTTP imeundwa ili kutoa vipengele vya mtandao vya kati ili kuimarisha au kuwezesha mawasiliano kati ya wateja na seva. Tovuti nyingi za trafiki mara nyingi hufaidika na seva za wavuti zilizohifadhiwa ambazo hutumikia maudhui kwa niaba ya rasilimali za juu, na kupunguza muda wa kupakia. Cache ya vivinjari vya wavuti inaruhusu mtumiaji kupunguza trafiki ya mtandao. Seva mbadala zinazotumia itifaki ya HTTP ndani mtandao wa ndani, inaweza kutoa muunganisho kwa wateja ambao hawaruhusu uelekezaji wa anwani wa kimataifa kwa kutuma ujumbe kutoka kwa seva za nje.

Kipindi cha HTTP ni mchakato unaofuatana wa maombi na majibu. Mteja huanzisha ombi kwa kufanya muunganisho wa TCP kwenye mlango maalum kwenye seva, na seva husikiliza kwenye mlango huo na kusubiri ujumbe wa ombi. Inapopokelewa, seva hutuma ujumbe wa majibu. Mwili wa ujumbe huu kwa kawaida huwakilisha rasilimali iliyoombwa, ingawa ujumbe wa hitilafu au taarifa nyingine inaweza kuonyeshwa.

Wakati wa kuzingatia madhumuni ya itifaki ya HTTP, ni lazima ieleweke kwamba inafafanua mbinu kwa madhumuni ya kubainisha. hatua inayohitajika, kutekelezwa kwa kutumia rasilimali zilizoainishwa. Katika kesi hii, aina ya habari iliyoonyeshwa (data iliyopo awali au inayozalishwa kwa nguvu) inategemea utekelezaji wa seva. Mara nyingi rasilimali kama hiyo inalingana na faili au hati iliyo kwenye mwenyeji.

Baadhi ya mbinu ambazo Itifaki ya Uhamisho wa Maandishi ya HTTP hutumia zimekusudiwa tu kupata maelezo na hazipaswi kubadilisha hali ya seva. Kwa maneno mengine, hawana athari kubwa, isipokuwa kwa athari zisizo na madhara za caching au kuongeza takwimu za wageni.

Kwa upande mwingine, itifaki ya HTTP inaweza pia kutumia njia ambazo zimekusudiwa kwa vitendo ambavyo vinaweza kuathiri seva au nyingine rasilimali za nje- kuamsha shughuli za kifedha au kufanya uhamisho wa barua pepe. Mara kwa mara, njia hizo hutumiwa na roboti za mtandao au baadhi ya tovuti na zinaweza kufanya maombi bila kujali kazi kuu.

22.04.05 13625

Kusudi la itifaki

Itifaki ya Uhamisho wa Maandishi ya Hyper (HTTP)- hii ni itifaki ngazi ya juu(yaani, safu ya maombi), kutoa kasi muhimu ya kuhamisha data inayohitajika kwa mifumo ya habari ya hypermedia iliyosambazwa. HTTP inatumiwa na mradi Ulimwenguni Pote Mtandao tangu 1990.

Vitendo Mifumo ya Habari zinahitaji zaidi ya utafutaji wa awali wa data, urekebishaji na ufafanuzi. HTTP/1.0 hutoa seti wazi ya mbinu ambazo zinaweza kutumika kubainisha madhumuni ya ombi. Zimeundwa kwa nidhamu ya urejeleaji, ambapo Kitambulisho cha Rasilimali kwa Wote (URI), katika umbo la eneo (URL) au jina (URN), kinatumiwa kuonyesha nyenzo ambayo mbinu fulani inapaswa kutumika. Umbizo la ujumbe ni sawa na Barua Pepe ya Mtandao au Viendelezi vya Barua Pepe za Mtandao kwa Madhumuni Mengi (MIME).

HTTP/1.0 pia hutumika kwa mawasiliano kati ya watazamaji tofauti wa watumiaji na lango ambalo hutoa ufikiaji wa hypermedia kwa zilizopo Itifaki za mtandao kama vile SMTP, NNTP, FTP, Gopher na WAIS. HTTP/1.0 imeundwa kuruhusu lango kama hilo seva za wakala, bila hasara yoyote, sambaza data kwa kutumia itifaki zilizotajwa za matoleo ya awali.

Muundo Mkuu

HTTP inatokana na dhana ya ombi/jibu. Programu ya ombi (kawaida huitwa mteja) huanzisha muunganisho na programu ya huduma ya kupokea (kawaida huitwa seva) na kutuma ombi kwa seva katika fomu ifuatayo: njia ya ombi, URI, toleo la itifaki, ikifuatiwa na ujumbe kama wa MIME. iliyo na maelezo ya udhibiti wa ombi, habari kuhusu mteja na labda mwili wa ujumbe. Seva hujibu kwa ujumbe ulio na mfuatano wa hali (pamoja na toleo la itifaki na msimbo wa hali ya mafanikio au hitilafu), ikifuatiwa na ujumbe kama wa MIME unaojumuisha maelezo kuhusu seva, maelezo ya kina kuhusu maudhui ya jibu, na pengine jibu. mwili yenyewe. Ikumbukwe kwamba programu moja inaweza kuwa mteja na seva kwa wakati mmoja. Matumizi ya maneno haya katika maandishi haya yanarejelea tu jukumu linalotekelezwa na programu wakati wa kipindi hicho cha mawasiliano, na sio majukumu ya jumla ya programu.

Kwenye Mtandao, mawasiliano kwa kawaida hutegemea itifaki za TCP/IP. Kwa WWW, nambari ya bandari chaguo-msingi ni TCP 80, lakini nambari zingine za bandari pia zinaweza kutumika - hii haizuii uwezekano wa kutumia HTTP kama itifaki ya kiwango cha juu.

Kwa programu nyingi, kipindi hufunguliwa na mteja kwa kila ombi na kufungwa na seva mara jibu la ombi limekamilika. Hata hivyo, hii sio kipengele cha itifaki. Mteja na seva lazima waweze kufunga kipindi cha mawasiliano, kwa mfano, kama matokeo ya kitendo cha mtumiaji. Kwa hali yoyote, utenganisho ulioanzishwa na upande wowote hukatisha ombi la sasa, bila kujali hali yake.

Dhana za jumla

Ombi ni ujumbe unaotumwa na mteja kwa seva.
Mstari wa kwanza wa ujumbe huu unajumuisha mbinu ya kutumika kwa rasilimali iliyoombwa, kitambulisho cha rasilimali na toleo la itifaki la kutumia. Kwa uoanifu na itifaki ya HTTP/0.9, kuna miundo miwili ya ombi la HTTP:

Hoja = Swala-Rahisi | Ombi Kamili Rahisi-Ombi = "PATA" SP Iliyoombwa-URI CRLF-Ombi Kamili = Hali-Laini *(Kichwa-Jumla | Kichwa-cha Ombi | Kichwa-Yaliyomo) CRLF [ Ombi-Yaliyomo ]

Seva ya HTTP/1.0 ikipokea Ombi Rahisi, ni lazima ijibu kwa Jibu Rahisi la HTTP/0.9. Mteja wa HTTP/1.0 anayeweza kuchakata Jibu-Kamili hapaswi kamwe kutuma Ombi Rahisi.

Hali ya mstari

Mstari wa Hali huanza na mstari wenye jina la mbinu, ikifuatiwa na URI ya Ombi na toleo la itifaki linalotumiwa. Mstari wa Hali huisha na vibambo vya CRLF. Vipengele vya mstari vinatenganishwa na nafasi (SP). Vibambo LF na CR haziruhusiwi katika Mstari wa Hali, isipokuwa mlolongo wa kufunga CRLF.

String-Hali = Mbinu SP Ombi URI SP Toleo-HTTP CRLF

Ikumbukwe kwamba tofauti kati ya Mstari wa Hali ya Ombi Kamili na Mstari wa Hali Ombi Rahisi inajumuisha uwepo wa uga wa HTTP-Toleo.

Njia

Sehemu ya Mbinu inabainisha mbinu ambayo inapaswa kutumika kwa rasilimali iliyotambuliwa na URI ya Ombi. Majina ya njia ni nyeti kwa kesi. Orodha iliyopo ya mbinu inaweza kupanuliwa.

Mbinu = "PATA" | "KICHWA" | "WEKA" | "POST" | "FUTA" | "KIUNGO" | "UNIUNGANISHA" | njia ya ziada

Orodha ya mbinu zinazoruhusiwa na nyenzo fulani inaweza kubainishwa katika sehemu ya Kichwa-Maudhui ya "Pointi". Hata hivyo, mteja huarifiwa kila mara na seva kupitia msimbo wa hali ya majibu ikiwa programu inaruhusiwa njia hii kwa rasilimali iliyoainishwa, kwani kukubalika kwa njia tofauti kunaweza kubadilika kwa nguvu. Ikiwa mbinu fulani inajulikana kwa seva, lakini hairuhusiwi kwa rasilimali iliyobainishwa, seva LAZIMA irudishe msimbo wa hali ya "Njia 405 Hairuhusiwi", na msimbo wa hali ya "501 Haijatekelezwa" ikiwa mbinu hiyo haijulikani. au haitumiki na seva iliyotolewa. Mbinu za kawaida za HTTP/1.0 zimeelezwa hapa chini.

PATA

Mbinu ya GET inatumika kupata taarifa yoyote iliyotambuliwa na URI ya Ombi. Ikiwa URI ya Ombi inarejelea mchakato wa kutoa data, jibu litakuwa data inayotokana na mchakato huo, si msimbo wa mchakato wenyewe (isipokuwa ni matokeo ya mchakato).

Mbinu ya GET inabadilishwa hadi "GET ya masharti" ikiwa ujumbe wa ombi unajumuisha sehemu ya kichwa "Ikiwa-Imebadilishwa-Tangu". Kwa kujibu GET ya masharti, mwili wa rasilimali iliyoombwa hutumwa ikiwa tu imerekebishwa tangu tarehe iliyobainishwa kwenye kichwa cha "Ikiwa-Imebadilishwa-Tangu". Algorithm ya kuamua hii ni pamoja na kesi zifuatazo:

  • Ikiwa msimbo wa hali ya jibu la ombi ni tofauti na "200 SAWA", au tarehe iliyobainishwa katika sehemu ya kichwa cha "Iliyorekebishwa-Tangu" si sahihi, jibu litafanana na jibu la kawaida. PATA ombi.
  • Ikiwa rasilimali imebadilika tangu tarehe iliyobainishwa, jibu pia litakuwa sawa na jibu la ombi la kawaida la GET.
  • Ikiwa rasilimali haijabadilishwa tangu tarehe iliyobainishwa, seva itarudisha msimbo wa hali wa "304 Haijabadilishwa".

Kutumia njia ya masharti ya GET inalenga kupakua mtandao, kwani hukuruhusu kuzuia kusambaza habari zisizohitajika kwenye mtandao.

KICHWA

Njia ya HEAD ni sawa na njia ya GET, isipokuwa isipokuwa hiyo kwamba seva hairudishi Mwili wa Majibu katika jibu. Maelezo ya meta yaliyo katika vichwa vya HTTP vya jibu la ombi la HEAD lazima yafanane na maelezo yaliyo katika vichwa vya HTTP vya jibu la ombi la GET. Njia hii inaweza kutumika kupata taarifa za kina kuhusu rasilimali bila kusambaza rasilimali yenyewe kwenye mtandao. Mbinu ya "Kichwa cha Masharti", sawa na GET ya masharti, haijafafanuliwa.

POST

Mbinu ya POST inatumiwa kuomba seva kukubali maelezo yaliyojumuishwa katika ombi kama ya chini ya rasilimali iliyobainishwa katika Mstari wa Hali katika sehemu ya Ombi la URI. Mbinu ya POST iliundwa ili kuruhusu njia moja ya kawaida kutumika kwa kazi zifuatazo:

  • Muhtasari wa rasilimali zilizopo
  • Kuongeza ujumbe kwa vikundi vya habari, orodha za wanaopokea barua pepe, au vikundi sawa vya makala
  • Uwasilishaji wa vizuizi vya data kwa kuchakata data
  • Kupanua hifadhidata kupitia operesheni ya nyongeza

Kazi halisi inayofanywa na njia ya POST imedhamiriwa na seva na kwa kawaida inategemea URI ya Ombi. Habari inayoongezwa inachukuliwa kuwa chini ya URI iliyobainishwa kwa maana sawa kwamba faili iko chini ya saraka ambayo iko, nakala mpya iko chini ya kikundi cha habari ambacho imeongezwa, ingizo liko chini ya hifadhidata.

Mteja anaweza kupendekeza URI ili kutambua rasilimali mpya kwa kujumuisha kichwa cha "URI" kwenye ombi. Hata hivyo, seva inapaswa kuchukulia URI hii kama kidokezo pekee na inaweza kuhifadhi mwili wa ombi chini ya URI tofauti au kutokuwa na URI kabisa.

Ikiwa, kama matokeo ya kuchakata ombi la POST, a rasilimali mpya, jibu lazima liwe na msimbo wa hali ya "201 Imeundwa" na iwe na URI ya rasilimali mpya.

WEKA

Mbinu ya PUT inaomba seva kuhifadhi Mwili wa Ombi chini ya URI sawa na URI ya Ombi. Ikiwa URI ya Ombi inarejelea rasilimali iliyopo, Mwili wa Ombi unapaswa kushughulikiwa kama toleo lililobadilishwa ya rasilimali hii. Ikiwa rasilimali inayorejelewa na URI ya Ombi haipo, na URI iliyotolewa inaweza kuchukuliwa kuwa maelezo ya rasilimali mpya, seva inaweza kuunda rasilimali kwa URI iliyotolewa. Ikiwa rasilimali mpya imeundwa, seva lazima ijulishe mteja anayeomba kupitia jibu na msimbo wa hali "201 Imeundwa". Ikiwa rasilimali iliyopo imerekebishwa, jibu la "Sawa 200" lazima litumwe ili kumjulisha mteja kuwa operesheni imekamilika kwa mafanikio. Ikiwa rasilimali iliyo na URI iliyobainishwa haiwezi kuundwa au kurekebishwa, ujumbe unaofaa wa hitilafu lazima utumwe.

Tofauti ya kimsingi kati ya njia za POST na PUT ni maana tofauti ya uga wa Ombi la URI. Kwa mbinu POST imetolewa URI inabainisha rasilimali ambayo itabadilisha maelezo yaliyomo kwenye shirika la ombi kama kiambatisho. Nyenzo hii inaweza kuwa mchakato wa kuchakata data, lango la itifaki nyingine, au rasilimali tofauti inayoruhusu vidokezo. Kinyume chake, URI ya ombi la PUT inabainisha taarifa iliyo katika Ombi-Yaliyomo. Mtumiaji wa ombi la PUT anajua haswa ni URI gani inakusudia kutumia, na mpokeaji wa ombi hapaswi kujaribu kutumia ombi kwa rasilimali nyingine.

FUTA

Mbinu ya DELETE inatumika kufuta rasilimali zilizotambuliwa na URI ya Ombi. Matokeo ya njia hii kwenye seva yanaweza kubadilishwa kupitia uingiliaji wa kibinadamu (au njia nyingine). Kimsingi, mteja hawezi kamwe kuwa na uhakika kwamba operesheni ya kufuta imekamilika, hata ikiwa msimbo wa hali umebadilishwa seva hii om, inaarifu kuhusu kukamilika kwa hatua kwa mafanikio. Hata hivyo, seva haipaswi kuripoti mafanikio hadi inakaribia kufutwa wakati wa kujibu rasilimali hii au uisogeze hadi eneo lisiloweza kufikiwa.

KIUNGO

Mbinu ya LINK huanzisha uhusiano kati ya rasilimali iliyopo iliyobainishwa katika URI ya Ombi na rasilimali nyingine zilizopo. Tofauti kati ya mbinu ya LINK na mbinu nyingine zinazoruhusu kuanzisha viungo kati ya hati ni kwamba mbinu ya LINK hairuhusu kupitisha Mwili wa Ombi katika ombi, na kwamba kutokana na mbinu hii, rasilimali mpya hazijaundwa.

ONDOA KIUNGO

Mbinu ya UNLINK huondoa uhusiano wa kiungo kimoja au zaidi kwa rasilimali iliyobainishwa katika Ombi la URI. Mahusiano haya yanaweza kuanzishwa kwa kutumia mbinu ya LINK au mbinu nyingine inayotumia kichwa cha "Kiungo". Kuondoa kiunga cha rasilimali haimaanishi kuwa rasilimali hiyo itakoma kuwapo au haipatikani kwa marejeleo ya siku zijazo.

Sehemu za Kichwa cha Ombi

Sehemu za Kichwa cha Ombi huruhusu mteja kutuma kwa seva Taarifa za ziada kuhusu ombi na kuhusu mteja mwenyewe.

Ombi-Kichwa = Kubali | Kubali-Charset | Kubali-Usimbaji | Kubali-Lugha | Uidhinishaji | Kutoka | Ikiwa-Imebadilishwa-Tangu | Pragma | Mrejeleaji | Mtumiaji-Ajenti | ugani-header

Zaidi ya hayo, vichwa vya ziada vinaweza kufafanuliwa kupitia utaratibu wa ugani; programu ambazo hazizitambui lazima zichukue vichwa hivi kama Yaliyomo kwenye Kichwa.

Baadhi ya sehemu za kichwa cha ombi zitajadiliwa hapa chini.

Kutoka

Ikiwa sehemu ya Kutoka iko, lazima iwe na anwani kamili ya barua pepe ya mtumiaji anayedhibiti programu ya wakala anayetuma maombi. Anwani hii lazima ibainishwe katika umbizo lililofafanuliwa katika RFC 822. Umbizo wa uwanja huu inayofuata: Kutoka = "Kutoka" ":" uainishaji wa anwani. Kwa mfano:

Kutoka: [barua pepe imelindwa]

Sehemu hii inaweza kutumika kwa kazi za kuingia, na pia kutambua chanzo cha maombi yasiyo sahihi au yasiyotakikana. Haipaswi kutumiwa kama njia isiyoainishwa ya udhibiti wa ufikiaji. Tafsiri ya uwanja huu ni kwamba ombi linaloshughulikiwa linafanywa kwa niaba ya mtumiaji aliyepewa, ambaye huchukua jukumu kwa njia iliyotumiwa. Hasa, mawakala wa roboti wanapaswa kutumia kichwa hiki ili mtu anayehusika na roboti aweze kupatikana ikiwa matatizo yatatokea. Anwani ya barua pepe ya mtandao iliyoonyeshwa katika sehemu hii si lazima ilingane na anwani ya mwenyeji ambako ombi hili lilitumwa. Ikiwezekana, anwani inapaswa kuwa mtandao unaopatikana anwani bila kujali kama ni anwani ya mtandao Barua pepe au Barua pepe ya Mtandao inayowakilisha anwani za mifumo mingine ya barua.

Kumbuka: Mteja hapaswi kutumia sehemu ya kichwa Kutoka bila ruhusa ya mtumiaji, kwa kuwa hii inaweza kukinzana na maslahi yake ya kibinafsi au mfumo wake wa usalama wa ndani. Inapendekezwa sana kwamba mtumiaji apewe chaguo la kuzima, kuwezesha, au kurekebisha sehemu hii wakati wowote kabla ya kutuma ombi.

Ikiwa-Imebadilishwa-Tangu

Sehemu ya kichwa Ikiwa-Imebadilishwa-Kwa kuwa inatumiwa na GET mbinu kuifanya iwe na masharti: ikiwa rasilimali iliyoombwa haijabadilika kwa wakati uliowekwa katika uwanja huu, nakala ya rasilimali hiyo haitarejeshwa na seva; badala yake, jibu la "304 Haijabadilishwa" bila Mwili wa Majibu litarejeshwa.

If-Modified-Since = "Ikiwa-Imebadilishwa-Tangu" ":" Tarehe ya HTTP

Mfano wa kutumia kichwa:

Madhumuni ya kipengele hiki ni kuwezesha uppdatering mzuri wa maelezo ya akiba ya ndani na angalau habari zinazosambazwa. Matokeo sawa yanaweza kupatikana kwa kutumia njia ya HEAD ikifuatiwa na kwa kutumia GET ikiwa seva imeonyesha kuwa yaliyomo kwenye hati yamebadilika.

Mtumiaji-Wakala

Sehemu ya kichwa cha Wakala wa Mtumiaji ina taarifa kuhusu wakala wa mtumiaji aliyetuma ombi. Sehemu hii inatumika kwa takwimu, ufuatiliaji wa makosa ya itifaki, na utambuzi otomatiki mawakala wa watumiaji. Ingawa haihitajiki, mawakala wa watumiaji wanapaswa kujumuisha sehemu hii kila wakati katika maombi yao. Sehemu inaweza kuwa na mistari mingi inayowakilisha jina la bidhaa ya programu, upasuaji wa hiari unaoonyesha toleo la bidhaa, na nyinginezo. bidhaa za programu, ambayo huunda sehemu muhimu ya wakala wa mtumiaji. Kwa makubaliano, bidhaa zimeorodheshwa kwa utaratibu wa kushuka wa umuhimu wao kwa utambulisho wa maombi.

User-Agent = "Mtumiaji-Agent" ":" 1*(bidhaa) product = string ["/" product-version] product-version = string

Wakala wa Mtumiaji: CERN-LineMode/2.15 libwww/2.17b3

Mstari unaoelezea jina la bidhaa unapaswa kuwa mfupi na wa uhakika - kutumia kichwa hiki kutangaza habari nyingine yoyote, isiyo na maana hairuhusiwi na itachukuliwa kuwa haiendani na itifaki. Ingawa kamba yoyote inaweza kuwepo katika uga wa toleo la bidhaa, mstari uliopewa inapaswa kutumika tu kuonyesha toleo la bidhaa. Sehemu ya Wakala wa Mtumiaji inaweza kujumuisha maelezo ya ziada katika maoni ambayo si sehemu ya thamani yake.

Muundo wa majibu

Baada ya kupokea na kutafsiri ombi, seva hutuma jibu kulingana na fomu ifuatayo:

Jibu = Rahisi-Jibu | Jibu-Kamili-Rahisi = [ Majibu-Yaliyomo ] Jibu-Kamili = Hali-ya Mstari *(Kichwa-Kawaida | Kichwa-cha-Majibu | Kichwa-Yaliyomo) CRLF [Maudhui-ya-Majibu ]

Jibu Rahisi linapaswa kutumwa tu kwa kujibu Ombi Rahisi la HTTP/0.9, au ikiwa seva inaauni itifaki ndogo ya HTTP/0.9 pekee. Ikiwa mteja atatuma Ombi Kamili la HTTP/1.0 na kupokea jibu ambalo halianzi na Mstari wa Hali, ni lazima ichukulie kuwa jibu la seva ni Jibu Rahisi na kulichakata ipasavyo. Ikumbukwe kwamba Jibu-Rahisi linajumuisha tu habari iliyoombwa (hakuna vichwa) na mtiririko wa data huacha wakati seva inafunga kipindi cha mawasiliano.

Hali ya mstari

Mstari wa kwanza wa Ombi Kamili ni Mstari wa Hali unaojumuisha toleo la itifaki, ikifuatiwa na msimbo wa hali ya nambari na sentensi ya maandishi inayohusishwa. Vipengele vyote vya Hali ya Mstari vinatenganishwa na nafasi. Vibambo vya CR na LF haziruhusiwi, isipokuwa mlolongo unaofuata wa CRLF.

Line-Status=Toleo-HTTP SP Status-Code SP Phrase-Explanation.

Kwa kuwa Mstari wa Hali daima huanza na toleo la itifaki "HTTP/" 1*DIGIT "." 1*DIGIT (km HTTP/1.0), kuwepo kwa usemi huu kunachukuliwa kuwa msingi wa kubainisha kama jibu ni Jibu-Rahisi au Jibu Kamili. Ingawa umbizo la Majibu Rahisi haizuii mstari kama huo kuonekana (jambo ambalo linaweza kusababisha ujumbe wa majibu kufasiriwa vibaya kama Jibu-Kamili), uwezekano wa tukio kama hilo unakaribia sufuri.

Msimbo wa Hali na maelezo yake

Kipengele cha Msimbo wa Hali ni msimbo mzima wa tarakimu 3 ambao unabainisha matokeo ya jaribio la kutafsiri na kukidhi ombi. Kifungu cha Maelezo kinachofuata kinakusudiwa kwa maelezo mafupi ya maandishi ya Kanuni ya Hali. Msimbo wa Hali unakusudiwa kutumiwa na mashine, ilhali Maneno ya Ufafanuzi yanalenga mtu. Mteja hatakiwi kuchunguza na kuonyesha Maneno ya Ufafanuzi.

Nambari ya kwanza ya Msimbo wa Hali imekusudiwa kuamua aina ya jibu. Nambari mbili za mwisho hazina jukumu lolote la kuainisha. Kuna maana 5 kwa tarakimu ya kwanza:

  1. 1xx: Taarifa - Haitumiki, lakini imehifadhiwa kwa matumizi ya baadaye
  2. 2xx: Mafanikio - Ombi lilipokelewa, kueleweka, na kukubaliwa kikamilifu ili kuchakatwa.
  3. 3xx: Elekeza Upya - Mteja anapaswa kuchukua hatua zaidi ili kukamilisha ombi kwa mafanikio. Muhimu hatua ya ziada wakati mwingine inaweza kutekelezwa na mteja bila mwingiliano wa mtumiaji, lakini inashauriwa sana kwamba hii itokee tu katika hali ambapo njia inayotumika katika ombi haijali (GET au HEAD).
  4. 4xx: Hitilafu ya Mteja - Ombi lililo na sintaksia isiyo sahihi haliwezi kukamilika kwa mafanikio. Darasa la 4xx linakusudiwa kuelezea kesi ambapo kosa lilifanywa kwa upande wa mteja. Ikiwa mteja bado hajakamilisha ombi anapopokea jibu kwa Msimbo wa Hali - 4xx, lazima aache mara moja kusambaza data kwa seva. Aina hii ya Msimbo wa Hali inatumika kwa mbinu zozote zinazotumiwa katika ombi.
  5. 5xx: Hitilafu ya Seva - Seva haikuweza kutoa jibu kwa ombi lililowasilishwa kwa usahihi. Katika kesi hizi
    seva inajua ilifanya makosa au haiwezi kushughulikia ombi. Isipokuwa majibu ya maombi ya HEAD, seva hutuma maelezo ya hali ya hitilafu na kama hali hiyo ni ya muda au ya kudumu katika Yaliyomo ya Majibu. Aina hii ya Msimbo wa Hali inatumika kwa mbinu zozote zinazotumiwa katika ombi.

Maana za kibinafsi za Misimbo ya Hali na Vishazi vya Maelezo vinavyolingana vimetolewa hapa chini. Vishazi hivi vya Ufafanuzi vinapendekezwa pekee - vinaweza kubadilishwa na vishazi vingine vyovyote vinavyohifadhi maana yake na kuruhusiwa na itifaki.

Hali-Msimbo = "200" ; SAWA | "201"; Imeundwa | "202"; Imekubaliwa | "203"; Taarifa za Muda | "204"; Hakuna Maudhui | "300"; Chaguo Nyingi | "301"; Imehamishwa Kabisa | "302"; Imehamishwa kwa Muda | "303"; Mbinu | "304"; Haijabadilishwa | "400"; Ombi baya | "401"; Isiyoidhinishwa | "402"; Malipo Yanahitajika | "403"; Imepigwa marufuku | "404"; Haikupatikana | "405"; Mbinu Hairuhusiwi | "406"; Haikubaliki | "407"; Uthibitishaji wa Wakala Unahitajika | "408"; Muda wa Ombi umekwisha | "409"; Migogoro | "410"; Imepita | "500"; Seva ya Ndani Hitilafu | "501"; Haijatekelezwa | "502"; Lango Mbaya | "503"; Huduma Haipatikani | "504"; Muda wa Gateway | Msimbo wa Kiendelezi wa Msimbo wa Kiendelezi = Ufafanuzi wa Maneno-3DIGIT = kamba *(kamba ya SP)

Kutoka Programu za HTTP Kuelewa Misimbo yote ya Hali haihitajiki, ingawa ufahamu kama huo ni wa kuhitajika. Hata hivyo, programu zinahitajika ili kuweza kutambua aina za Misimbo ya Hali (iliyotambuliwa kwa tarakimu ya kwanza) na kushughulikia Misimbo yote ya Hali ya hali ya majibu kana kwamba ni sawa na Msimbo wa Hali x00.

Sehemu za Majibu ya Kichwa

Sehemu za kichwa cha majibu huruhusu seva kupitisha maelezo ya ziada kuhusu jibu ambalo haliwezi kujumuishwa kwenye Mstari wa Hali. Sehemu hizi za kichwa hazikusudiwi kuwasilisha habari kuhusu maudhui ya jibu lililotumwa kwa kujibu ombi, lakini zinaweza kuwa na maelezo kuhusu seva yenyewe.

Kichwa cha Majibu= Hadharani | Jaribu tena-Baada ya | Seva | WWW-Thibitisha | ugani-header

Ingawa mashamba ya ziada vichwa vya majibu vinaweza kutekelezwa kupitia utaratibu wa kiendelezi, programu ambazo hazitambui sehemu hizi lazima zizichukulie kama sehemu za Maudhui ya Kichwa. Maelezo kamili ya sehemu hizi yanaweza kupatikana katika vipimo vya itifaki ya CERN HTTP.

Dhana za Jumla

Ombi Kamili na Majibu Kamili yanaweza kutumika kuwasilisha taarifa fulani katika maombi na majibu tofauti. Taarifa hii ni Ombi-Maudhui au Majibu-Yaliyomo, mtawalia, na Kichwa-Yaliyomo.

Sehemu za Maudhui ya Kichwa

Sehemu za Kichwa-Maudhui zina maelezo ya hiari ya meta kuhusu Ombi-Yaliyomo au Majibu-Yaliyomo, mtawalia. Ikiwa mwili wa ujumbe unaolingana (ombi au jibu) haupo, basi Kichwa cha Maudhui kina habari kuhusu rasilimali iliyoombwa.

Baadhi ya sehemu za vichwa vya maudhui zimefafanuliwa hapa chini.

Ruhusu

Sehemu ya Ruhusu kichwa ni orodha ya mbinu ambazo rasilimali iliyotambuliwa na URI ya Ombi inasaidia. Madhumuni ya uga huu ni kumfahamisha mpokeaji kwa usahihi mbinu halali zinazohusiana na rasilimali; sehemu hii lazima iwepo katika jibu na msimbo wa hali "Njia ya 405 Hairuhusiwi".

Ruhusu = "Ruhusu" ":" 1#njia

Mfano wa matumizi:

Ruhusu: PATA, KICHWA, WEKA

Bila shaka, mteja anaweza kujaribu njia nyingine. Walakini, inashauriwa kufuata njia zilizoonyeshwa katika uwanja huu. Sehemu hii haina thamani chaguo-msingi; ikiwa haijafafanuliwa, seti ya mbinu zinazoruhusiwa imedhamiriwa na seva wakati wa kila ombi.

Urefu wa Maudhui

Sehemu ya Urefu wa Maudhui inabainisha ukubwa wa mwili wa ujumbe uliotumwa na seva kujibu ombi au, ikiwa ni ombi la HEAD, ukubwa wa ujumbe ambao ungetumwa kwa kujibu ombi la GET.

Urefu wa Maudhui = "Urefu-Maudhui" ":" 1*DIGIT

Kwa mfano:

Urefu wa Maudhui: 3495

Ingawa haihitajiki, programu zinahimizwa sana kutumia sehemu hii kuchanganua ukubwa wa ujumbe unaotumwa, bila kujali aina ya taarifa iliyomo. Kwa uga wa Urefu wa Maudhui, thamani yoyote kamili zaidi ya sifuri ni halali.

Aina ya Maudhui

Sehemu ya kichwa cha Aina ya Maudhui inabainisha aina ya taarifa katika chombo cha ujumbe ambayo inatumwa kwa mhusika anayepokea au, kwa upande wa mbinu ya HEAD, aina ya taarifa (midia) ambayo ingetumwa ikiwa mbinu ya GET ingetumika.

Content-Type = "Aina ya Maudhui" ":" aina ya mazingira

Aina za media zinafafanuliwa tofauti.
Mfano:

Aina ya Maudhui: maandishi/html; charset=ISO-8859-4

Sehemu ya Aina ya Maudhui haina thamani chaguo-msingi.

Iliyorekebishwa Mwisho

Sehemu ya kichwa ina tarehe na wakati ambapo mtumaji anaamini kuwa rasilimali ilirekebishwa mara ya mwisho. Semantiki za sehemu hii hufafanuliwa kwa maneno yanayoelezea jinsi mpokeaji anapaswa kufasiri: ikiwa mpokeaji ana nakala ya nyenzo ambayo ni ya zamani kuliko tarehe iliyopitishwa katika sehemu ya Marekebisho ya Mwisho, basi nakala hiyo inapaswa kuzingatiwa kuwa ya zamani. .

Iliyorekebishwa Mwisho = "Iliyorekebishwa Mwisho" ":" Tarehe ya HTTP

Mfano wa matumizi:

Maana halisi ya sehemu hii ya kichwa inategemea utekelezaji wa mhusika anayetuma na asili ya rasilimali yenyewe. Kwa faili, hii inaweza kuwa wakati wake wa mwisho wa urekebishaji. Kwa lango la hifadhidata, huu unaweza kuwa wakati sasisho la mwisho data katika hifadhidata. Kwa hali yoyote, mpokeaji anahitaji tu kuwa na wasiwasi juu ya matokeo - kile kilicho katika uwanja uliopewa - na usiwe na wasiwasi kuhusu jinsi matokeo yalipatikana.

Mwili wa ujumbe

Kiini cha ujumbe kinarejelea Ombi-Maudhui au Majibu-Yaliyomo, mtawalia. Kiini cha ujumbe, ikiwa kipo, kinatumwa katika ombi la HTTP/1.0 au jibu katika umbizo na usimbaji uliobainishwa na sehemu za Maudhui ya Kichwa.

Mwili wa Ujumbe = *OCTET (ambapo OCTET ni herufi yoyote ya 8-bit)

Mwili wa ujumbe umejumuishwa katika ombi ikiwa tu njia ya ombi inamaanisha uwepo wake. Kwa vipimo vya HTTP/1.0, njia hizi ni POST na PUT. Kwa ujumla, uwepo wa kikundi cha ujumbe unaonyeshwa kwa kuwepo kwa sehemu za vichwa vya maudhui kama vile Urefu wa Maudhui na/au Usimbaji-Uhawilishaji-Yaliyomo katika ombi lililotumwa.

Kwa ujumbe wa majibu, kuwepo kwa mwili wa ujumbe katika jibu kunategemea njia iliyotumiwa katika ombi na Kanuni ya Hali. Majibu yote kwa maombi ya HEAD lazima yasiwe na mwili wa ujumbe, ingawa kuwepo kwa baadhi ya sehemu za vichwa vya ujumbe kunaweza kuonyesha uwezekano wa kuwepo kwa moja. Kwa hivyo, majibu ya "204 Hakuna Maudhui", "304 Hayajabadilishwa", na "406 Hayakubaliki" pia hayapaswi kujumuisha kikundi cha ujumbe.

Nzuri mbaya

Itifaki ya Uhamisho wa Maandishi ya HTTP (RFC 1945, 2068) imeundwa ili kuhamisha hati za maandishi ya hypertext kutoka kwa seva hadi kwa mteja. Itifaki ya HTTP inarejelea itifaki za safu ya programu. Kulingana na RFC, itifaki ya usafiri lazima kuwe na itifaki yake kuanzisha uhusiano, usambazaji wa data unaotegemewa na bila kuhifadhi mipaka kati ya ujumbe. Katika mazoezi, katika idadi kubwa ya matukio, itifaki ya usafiri kwa HTTP ni Itifaki ya TCP, na seva ya HTTP (seva ya Wavuti) iko katika hali ya kungojea muunganisho kutoka kwa upande wa mteja, kawaida kwenye bandari ya TCP 80, na mteja wa HTTP ( Kivinjari cha wavuti) ndiye mwanzilishi wa muunganisho.

Kwa maneno ya Mtandao, kila kitu ambacho mtumiaji anaweza kufikia - nyaraka, picha, programu - huitwa rasilimali. Kila nyenzo ina anwani ya kipekee ya Wavuti, inayoitwa kitambulisho cha rasilimali za ulimwengu wote (URI - Kitambulisho cha Rasilimali kwa Wote). Katika hali ya jumla, URI inaonekana kama hii:

protocol://user:password@host:port/path/file?paremeters#fragment

Sehemu za URI za kibinafsi zina maana ifuatayo:

itifaki - itifaki ya maombi ambayo rasilimali hupatikana;

mtumiaji - mtumiaji ambaye rasilimali inafikiwa kwa niaba yake au mtumiaji mwenyewe kama rasilimali;

nenosiri - nenosiri la mtumiaji kwa uthibitishaji wakati wa kupata rasilimali;

mwenyeji - anwani ya IP au jina la seva ambayo rasilimali iko;

bandari - nambari ya bandari ambayo seva inaendesha, kutoa ufikiaji wa rasilimali;

njia - njia ya faili iliyo na rasilimali;

faili - faili iliyo na rasilimali;

vigezo - vigezo vya usindikaji na programu ya rasilimali;

fragment - hatua katika faili kuanzia ambayo rasilimali inapaswa kuonyeshwa.

Mwingiliano kati ya mteja na seva ya Wavuti unafanywa kwa kubadilishana ujumbe. Ujumbe wa HTTP umegawanywa katika maombi ya mteja kwa seva na majibu ya seva kwa mteja.

Ujumbe wa ombi na majibu una umbizo la kawaida. Aina zote mbili za ujumbe zinaonekana kama hii: kwanza kuna safu ya kuanza, halafu labda sehemu moja au zaidi ya kichwa, ambayo pia huitwa vichwa, kisha laini tupu (ambayo ni, laini inayojumuisha herufi CR na LF), inayoonyesha mwisho wa sehemu za kichwa na ikiwezekana mwili wa ujumbe:

mstari wa kuanza

sehemu ya kichwa 1

uwanja wa kichwa 2

uwanja wa kichwa N

chombo cha ujumbe

Miundo ya mwanzo ya mteja na seva hutofautiana na itajadiliwa hapa chini. Kuna aina nne za vichwa:

vichwa vya jumla, ambavyo vinaweza kuwepo katika ombi na majibu;

ombi vichwa, ambavyo vinaweza kuwapo tu katika ombi;

vichwa vya majibu, ambavyo vinaweza kuwepo tu katika majibu;

vichwa vya chombo, ambavyo hurejelea mwili wa ujumbe na kuelezea yaliyomo.

Kila kichwa kina kichwa, herufi ya koloni ":" na thamani. Vichwa muhimu zaidi vinaonyeshwa kwenye jedwali. 1.

Jedwali 1

Vichwa vya itifaki ya HTTP

Kichwa

Kusudi

Vichwa vya Kitu

Inaorodhesha njia zinazotumika na seva

Usimbaji wa Maudhui

Jinsi mwili wa ujumbe unavyosimbwa, kwa mfano kupunguza saizi

Urefu wa ujumbe katika baiti

Aina ya maudhui na pengine baadhi ya vigezo

Lebo ya kipekee ya rasilimali kwenye seva inayokuruhusu kulinganisha rasilimali

Tarehe na wakati ambapo rasilimali kwenye seva itabadilika na inahitaji kurejeshwa tena

Tarehe na wakati maudhui yalibadilishwa mwisho

Vichwa vya majibu

Idadi ya sekunde kisha ombi lazima lirudiwe ili kupata maudhui mapya

URI ya rasilimali ya kufikia ili kupata maudhui

Tarehe na saa au idadi ya sekunde baada ya hapo ombi lazima lirudiwe ili kupata jibu lililofanikiwa

Jina la programu utoaji wa seva nani alituma jibu

Omba vichwa

Aina za maudhui ambayo mteja "anaelewa" na anaweza kucheza

Usimbaji wa herufi ambamo mteja anaweza kukubali maudhui ya maandishi

Jinsi seva inaweza kusimba ujumbe

Nambari ya seva pangishi na mlango ambayo hati imeombwa

Ikiwa-Imebadilishwa-Tangu

Ikiwa-Haijabadilishwa-Tangu

Omba vichwa vya ufikiaji wa rasilimali kwa masharti

Omba sehemu ya hati

Jina la programu ya mteja

Vichwa vya Jumla

Inaonyesha seva kufunga au kuweka hai kipindi

Tarehe na wakati ujumbe ulitolewa

Maelezo ya kina ya vichwa vya HTTP/1.0 yanaweza kupatikana katika RFC 2068.

Mwili wa ujumbe una taarifa halisi inayotumwa—mzigo wa malipo ya ujumbe. Mwili wa ujumbe ni mlolongo wa pweza (byte). Mwili wa ujumbe unaweza kusimbwa, kwa mfano, ili kupunguza kiasi cha habari inayopitishwa, na njia ya usimbaji imeonyeshwa kwenye kichwa cha kitu cha Usimbaji-Yaliyomo.

Ujumbe wa ombi kutoka kwa mteja hadi kwa seva unajumuisha laini ya ombi, vichwa (jumla, maombi, kitu), na ikiwezekana chombo cha ujumbe. Mstari wa ombi huanza na mbinu, ikifuatiwa na kitambulisho cha rasilimali inayoombwa, toleo la itifaki, na herufi zinazofuata za mwisho wa mstari:

<Метод> <Идентификатор> <Версия HTTP>

Mbinu hii inabainisha amri ya itifaki ya HTTP ya kutumika kwa rasilimali iliyoombwa. Kwa mfano, mbinu ya GET inaonyesha kuwa mteja anataka kurejesha yaliyomo kwenye rasilimali. Kitambulisho kinatambua rasilimali inayoombwa. Toleo la HTTP linaonyeshwa na mstari kama huu:

HTTP/<версия>.<подверсия>

RFC 2068 inaleta itifaki ya HTTP/1.1.

Wacha tuangalie njia kuu za itifaki ya HTTP.

Mbinu ya OPTIONS huomba taarifa kuhusu chaguo za muunganisho (km, mbinu, aina za hati, usimbaji) ambazo seva inakubali kwa rasilimali iliyoombwa. Mbinu hii humruhusu mteja kubainisha chaguo na/au mahitaji yanayohusiana na rasilimali au uwezo wa seva bila kutekeleza vitendo vyovyote kwenye rasilimali au kusababisha kupakiwa.

Ikiwa jibu la seva sio ujumbe wa makosa, basi vichwa vya kitu vina habari ambayo inaweza kuzingatiwa kama chaguzi za unganisho. Kwa mfano, kichwa cha Ruhusu huorodhesha mbinu zote zinazotumika na seva kwa rasilimali fulani.

Ikiwa kitambulisho cha rasilimali kilichoombwa ni kinyota (“*”), basi ombi la OPTIONS linakusudiwa kushughulikia seva kwa ujumla.

Ikiwa kitambulisho cha nyenzo kilichoombwa si nyota, basi ombi la OPTIONS linatumika kwa chaguo zinazopatikana wakati wa kuunganisha kwenye rasilimali iliyobainishwa.

Mbinu ya GET hukuruhusu kupata taarifa yoyote inayohusiana na rasilimali iliyoombwa. Mara nyingi, ikiwa kitambulisho cha nyenzo kilichoombwa kinaelekeza kwenye hati (kwa mfano, hati ya HTML, hati ya maandishi, picha, video), basi seva hurejesha yaliyomo kwenye hati hiyo (yaliyomo kwenye faili). Ikiwa rasilimali iliyoombwa ni programu (mpango) ambayo hutoa data fulani wakati wa utendakazi wake, basi data hii inarejeshwa katika kiini cha ujumbe wa majibu, na si picha ya jozi ya faili inayoweza kutekelezwa. Hii inatumika, kwa mfano, wakati wa kuunda programu za CGI. Ikiwa kitambulisho cha rasilimali iliyoombwa kinaelekeza kwenye saraka (saraka, folda), basi, kulingana na mipangilio ya seva, ama yaliyomo kwenye saraka (orodha ya faili) au yaliyomo kwenye moja ya faili zilizo kwenye saraka hii (kawaida. index.html au Default.htm). Unapoombwa folda, jina lake linaweza au lisionyeshwe na "/" mwishoni. Ikiwa herufi hii haipo mwishoni mwa kitambulishi cha rasilimali, seva hutoa mojawapo ya majibu ya kuelekeza kwingine (yenye misimbo ya hali 301 au 302).

Tofauti moja ya mbinu ya GET ni "GET ya masharti", ambapo ujumbe wa ombi unajumuisha If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, au If-Range ombi la vichwa . Mbinu ya masharti ya GET inaomba uhamisho wa kitu ikiwa tu inakidhi masharti yaliyoelezwa katika vichwa vilivyotolewa. Kwa mfano, kama kichwa cha If-Modified-Kwa vile kipo, maudhui ya rasilimali iliyoombwa yatarejeshwa tu ikiwa hayajabadilika tangu wakati uliobainishwa kama thamani ya kichwa hiki. Mbinu ya masharti ya GET inakusudiwa kupunguza upakiaji wa mtandao usio wa lazima, kwa kuwa inaepuka kupakia upya data ambayo tayari imehifadhiwa na mteja.

Pia kuna "PATA sehemu" ambapo ujumbe wa ombi unajumuisha kichwa cha ombi la Masafa. GET kiasi huomba kwamba ni sehemu tu ya kitu ihamishwe. Mbinu ya GET ya sehemu imeundwa ili kupunguza uendeshaji wa mtandao usio wa lazima kwa kuomba sehemu tu ya kitu wakati sehemu nyingine tayari imepakuliwa na mteja. Thamani ya kichwa cha Masafa ni kamba "bytes=" ikifuatiwa na safu ya baiti zitakazorejeshwa. Baiti zimepewa nambari kuanzia 0. Baiti za kuanzia na za mwisho za masafa hutenganishwa na herufi "-". Baiti za mwanzo na mwisho katika safu zinaweza kukosa. Ikiwa unahitaji kupata safu kadhaa, zimeorodheshwa zikitenganishwa na koma. Ikiwa baadhi ya safu zilizoorodheshwa zitapishana, seva huziunganisha. Ujumbe wa jibu kwa ombi la GET kiasi lazima uwe na kichwa cha Masafa ya Maudhui ambacho kinabainisha masafa yatakayopitishwa. Ikiwa seva itatuma safu nyingi zisizoingiliana, kichwa cha Aina ya Maudhui huchukua thamani maalum "multypart/byteranges". Mwili wa ujumbe umegawanywa katika sehemu zinazotenganishwa na kitenganishi kinachozalishwa na seva na kupitishwa kama kigezo cha kichwa cha Aina ya Maudhui. Kila moja sehemu tofauti ina yake mwenyewe Vijajuu vya Aina ya Maudhui na Maudhui-Range na mstari tupu kabla ya yaliyomo kwenye safu.

Mbinu ya HEAD ni sawa na GET, isipokuwa kwamba seva hairudishi kiini cha ujumbe katika jibu. Maelezo yaliyo katika vichwa vya HTTP vya jibu la ombi la HEAD ni sawa na maelezo yaliyotolewa kwa kujibu ombi la GET la rasilimali sawa. Njia hii inaweza kutumika kupata habari kuhusu kitu cha ombi bila kupitisha moja kwa moja mwili wa kitu. Mbinu ya HEAD inaweza kutumika kujaribu viungo vya hypertext.

Mbinu ya POST inatumika kwa ombi ambalo seva inayoshughulikiwa inakubali data iliyojumuishwa kwenye chombo cha ujumbe wa ombi (kitu) na kuituma kwa programu iliyobainishwa kama nyenzo iliyoombwa kwa kuchakatwa. POST imeundwa ili njia ya jumla kutekeleza majukumu yafuatayo:

maelezo ya rasilimali zilizopo;

kuchapisha ujumbe kwa mfumo wa ubao wa matangazo (BBS), vikundi vya habari, orodha za wanaotuma barua au kikundi sawa cha makala;

kuhamisha kizuizi cha data, kwa mfano matokeo ya pembejeo katika fomu, kwa mchakato wa usindikaji;

utekelezaji wa maswali kwa hifadhidata (DB);

Kwa kweli, kazi inayofanywa na mbinu ya POST imedhamiriwa na programu iliyoelekezwa na kitambulisho cha rasilimali iliyoombwa. Pamoja na mbinu ya GET, njia ya POST hutumiwa wakati wa kuunda programu za CGI. Kivinjari kinaweza kutoa maombi kwa kutumia mbinu ya POST wakati wa kuwasilisha fomu. Kwa kusudi hili kipengele cha FORM Hati ya HTML iliyo na fomu lazima iwe na sifa ya mbinu yenye thamani ya POST.

Programu iliyoanzishwa na POST inaweza kutekeleza kitendo kwenye seva na isirudishe maudhui yoyote kama matokeo. Kulingana na ikiwa jibu linajumuisha kikundi cha ujumbe kinachoelezea matokeo au la, msimbo wa hali katika jibu unaweza kuwa 200 (Sawa) au 204 (Hakuna Maudhui).

Ikiwa rasilimali kwenye seva imeundwa, jibu lina msimbo wa hali ya 201 (Imeundwa) na inajumuisha kichwa cha majibu ya Eneo.

Mwili wa ujumbe unaotumwa katika ombi la PUT huhifadhiwa kwenye seva, na kitambulisho cha rasilimali iliyoombwa kitakuwa kitambulisho cha hati iliyohifadhiwa. Ikiwa kitambulisho cha nyenzo kilichoombwa kinaelekeza kwenye rasilimali iliyopo, basi kitu kilichojumuishwa kwenye kikundi cha ujumbe kinachukuliwa kuwa toleo lililorekebishwa la rasilimali iliyo kwenye seva. Ikiwa rasilimali mpya imeundwa, seva hujulisha wakala wa mtumiaji kwa kujibu na msimbo wa hali 201 (Imeundwa).

Tofauti kati ya mbinu za POST na PUT ni thamani tofauti ya kitambulisho cha rasilimali iliyoombwa. URI katika ombi la POST inabainisha rasilimali ambayo huchakata kitu kilichojumuishwa kwenye chombo cha ujumbe. Nyenzo hii inaweza kuwa programu inayopokea data. Kinyume chake, URI in Ombi la PUT hubainisha kitu kilichojumuishwa katika ombi kama kiini cha ujumbe, yaani, wakala wa mtumiaji hukabidhi URI iliyotolewa kwa rasilimali iliyojumuishwa.

Mbinu ya DELETE inaomba seva kufuta nyenzo ambayo ina kitambulisho kilichoombwa. Ombi lililo na mbinu hii linaweza kukataliwa na seva ikiwa mtumiaji hana haki ya kufuta rasilimali iliyoombwa.

Mbinu ya TRACE inatumika kurejesha ombi lililotumwa katika kiwango cha itifaki ya HTTP. Mpokeaji wa ombi (seva ya Wavuti) hutuma ujumbe uliopokelewa kwa mteja kama sehemu kuu ya ujumbe wa jibu wenye msimbo wa hali ya 200 (Sawa). Ombi la TRACE lazima lisiwe na chombo cha ujumbe.

TRACE humruhusu mteja kuona kile ambacho seva inapokea kwa upande mwingine na kutumia data hii kwa majaribio au uchunguzi.

Ikiwa ombi limefaulu, jibu lina ujumbe mzima wa ombi katika mwili wa ujumbe wa majibu, na kichwa cha kitu cha Aina ya Maudhui ni "ujumbe/http".

Maelezo ya kina kuhusu mbinu za itifaki za HTTP/1.1 yanaweza kupatikana katika RFC 2068.

Baada ya kupokea na kutafsiri ujumbe wa ombi, seva hujibu kwa ujumbe wa jibu wa HTTP.

Mstari wa kwanza wa jibu ni Mstari wa Hali. Inajumuisha toleo la itifaki, msimbo wa hali ya nambari, kifungu cha maneno, kinachotenganishwa na nafasi, na vibambo vya mwisho vya mstari vinavyofuata:

<Версия HTTP> <Код состояния> <Поясняющая фраза>

Toleo la itifaki lina maana sawa na katika ombi.

Kipengele cha Msimbo wa Hali ni msimbo kamili wa tarakimu tatu (tarakimu tatu) kwa matokeo ya kuelewa na kukidhi ombi. Sababu-Kifungu ni maelezo mafupi ya maandishi ya msimbo wa hali. Msimbo wa hali unakusudiwa kuchakatwa na programu, na kifungu cha maelezo kinakusudiwa watumiaji.

Nambari ya kwanza ya msimbo wa hali huamua darasa la jibu. Nambari mbili za mwisho hazina jukumu maalum katika uainishaji. Kuna maana 5 kwa tarakimu ya kwanza:

1xx: Misimbo ya taarifa - ombi limepokelewa, usindikaji unaendelea.

2xx: Misimbo iliyofanikiwa- kitendo kilipokelewa, kueleweka na kuchakatwa kwa mafanikio.

3xx: Ielekeze upya misimbo - hatua zaidi lazima ichukuliwe ili kukamilisha ombi.

4xx: Misimbo ya hitilafu ya mteja - ombi lina hitilafu ya kisintaksia au haliwezi kukamilika.

5xx: Misimbo ya Hitilafu ya Seva - Seva haiwezi kukamilisha ombi halali.

Vifungu vya maelezo kwa kila msimbo wa hali vimeorodheshwa katika RFC 2068 na vinapendekezwa, lakini vinaweza kubadilishwa na vinavyolingana bila vikwazo vya itifaki. Kwa mfano, katika matoleo ya ndani ya lugha ya Kirusi ya seva za HTTP, maneno haya yanabadilishwa na ya Kirusi. Katika meza 2 inaonyesha misimbo ya majibu ya seva ya HTTP.

meza 2

Misimbo ya majibu Seva ya HTTP

Maneno ya ufafanuzi kulingana na

1xx: Misimbo ya habari

Endelea

2xx: Misimbo iliyofaulu

Hakuna maudhui

Weka Upya Yaliyomo

Maudhui Sehemu

Maudhui sehemu

3xx: Elekeza upya misimbo

Imesogezwa kwa Muda

Imehamishwa kwa muda

Haijarekebishwa

4xx: Misimbo ya hitilafu ya mteja

Ombi baya

Haijaidhinishwa

Haipatikani

Mbinu Hairuhusiwi

Mbinu hairuhusiwi

Muda wa Ombi umekwisha

Muda wa ombi umekwisha

Migogoro

Urefu Unaohitajika

Urefu unaohitajika

Omba Huluki Kubwa Sana

Kipengee cha ombi ni kikubwa sana

Mwisho wa meza. 2

Maneno ya ufafanuzi kulingana na

Maneno sawa ya maelezo katika Kirusi

5xx: Misimbo ya hitilafu ya seva

Ndani Hitilafu ya Seva

Hitilafu ya Ndani ya Seva

Haijatekelezwa

Haijatekelezwa

huduma haipatikani

Huduma haipatikani

Toleo la HTTP Halitumiki

Toleo la HTTP halitumiki

Maelezo ya kina kuhusu misimbo ya majibu na vichwa vinavyoandamana na majibu haya yanaweza kupatikana katika RFC 2068.

Mstari wa hali hufuatwa na vichwa (jumla, jibu, na kitu) na ikiwezekana chombo cha ujumbe.

Moja ya kazi muhimu zaidi Seva ya wavuti ni kutoa ufikiaji kwa sehemu ya ndani mfumo wa faili. Ili kufanya hivyo, saraka fulani imeainishwa katika mipangilio ya seva, ambayo ni saraka ya mizizi ya seva hii ya Wavuti. Ili kuchapisha hati, yaani, kuifanya kupatikana kwa watumiaji, "kutembelea" seva hii (kuunganisha nayo kupitia itifaki ya HTTP), unahitaji kunakili hati hii saraka ya mizizi Seva ya wavuti au mojawapo ya saraka zake ndogo. Wakati wa kuunganisha kupitia HTTP, mchakato huundwa kwenye seva na haki za mtumiaji, ambayo, kama sheria, haipo kabisa, lakini imeundwa mahsusi kutazama rasilimali za seva. Kwa kusanidi haki na ruhusa za mtumiaji fulani, unaweza kudhibiti ufikiaji wa rasilimali za Wavuti.