I-crux yengxaki kukuba i-frontends kunye ne-backends zihlala zibonelela ngamanqanaba ahlukeneyo enkxaso yeprotocol ye-HTTP, kodwa ngexesha elifanayo lifake izicelo ezivela kubasebenzisi abahlukeneyo kwitshaneli eqhelekileyo. Ukudibanisa izicelo zokufumana i-frontend kunye nezicelo ze-backend processing, uxhulumaniso oluhlala ixesha elide lwe-TCP lusekwe, apho izicelo zomsebenzisi zithunyelwa khona, zihanjiswe kunye nekhonkco emva komnye, zihlukaniswe ngendlela ye-HTTP protocol. Ukwahlula izicelo, iiheader "Content-Length" (imisela ubungakanani bedatha kwisicelo) kunye "
Ingxaki ivela ukuba i-frontend ixhasa kuphela "Ubude boMxholo" kodwa iyayihoxisa "Ukudluliselwa-Ukufakwa kweekhowudi: i-chunked" (umzekelo, i-Akamai CDN yenze oku) okanye ngokuchaseneyo. Ukuba i-Transfer-Encoding: i-chunked ixhaswa kumacala omabini, iimpawu zokuphunyezwa kwe-HTTP yokwahlulahlula okubhalwe ngasentla ingasetyenziselwa uhlaselo (umzekelo, xa isiphelo sangaphambili singayihoyi imigca efana ne- “Transfer-Encoding: xchunked”, “Transfer-Encoding: chunked ”, “Uguqulelo-UFakelo lweKhowudi” :[ithebhu] icutshiwe", "X: X[\n]Ugqithiselo-Uguqulelo lweKhowudi: chunked", "Uguqulelo-UFakelo lweeKhowudi[\n]: lunqunyulwe" okanye "Ugqithiso-UFakelo lweekhowudi : lunqunyulwe", kunye i-backend iqhubekeke ngempumelelo).
Kulo mzekelo, umhlaseli angathumela isicelo esiqulathe zombini "Ubude boMxholo" kunye ne "Transfer-Encoding: chunked" headers, kodwa ubungakanani obuku "Content-Length" abuhambelani nobukhulu betsheyini elidityanisiweyo. incinci kunexabiso lokwenyani. Ukuba i-frontend iqhubekisa phambili kwaye idlulisele isicelo ngokwe-"Content-Length" kunye ne-backend ilinda ukuba ibhloko igqitywe ngokusekelwe ku-"Transfer-Encoding: chunked", ngoko ke isiphelo sedatha esekelwe ku-"Transfer-Encoding: chunked" kumiselwa kwangaphambili kwaye umsila oseleyo wesicelo umhlaseli uya kuba ekuqaleni kwesicelo esilandelayo, okt. umhlaseli uya kukwazi ukuncamathelisa idatha engafanelekanga ekuqaleni kwesicelo somnye umntu esithunyelwe ngokulandelayo.
Ukumisela ingxaki kwindibaniselwano esetyenzisiweyo ye-frontend-backend, ungathumela isicelo esinje nge-frontend:
POST / malunga ne-HTTP/1.1
Umamkeli: example.com
Ugqithiselo-Uguqulelo lweKhowudi: inqunyulwe
Umxholo-Ubude: 4
1
Z
Q
Ingxaki ikhona ukuba i-backend ayiqhubeki ngokukhawuleza isicelo kwaye ilinde ukufika kwebloko yokugqibela ye-zero yedatha ehlutshiweyo. Ukufumana ukujonga okupheleleyo
Ukwenza uhlaselo lokwenyani kuxhomekeke kubuchule besiza esihlaselweyo, umzekelo, xa uhlasela isicelo sewebhu seTrello, unokutshintsha indawo yokuqala yesicelo (idatha ebambeleyo njenge “PUT /1/members/1234... x=x&csrf =1234&username=testzzz&bio=cake”) kwaye uthumele umyalezo oquka isicelo sokuqala somsebenzisi wesithathu kunye neCookie yokuqinisekisa echazwe kuyo. Kuhlaselo kwi-saas-app.com, kuye kwabonakala ukuba kunokwenzeka ukufaka endaweni yekhowudi yeJavaScript kwimpendulo ngokuyifaka kwenye yeeparamitha zesicelo. Kuhlaselo lwe-redhat.com, umphathi wangaphakathi wasetyenziselwa ukuqondisa kwakhona kwiwebhusayithi yomhlaseli (isicelo sefom "POST /search?dest=../assets/idx?redir=//[imeyile ikhuselwe]/ HTTP/1.1").
Ukusebenzisa indlela yothungelwano lonikezelo lomxholo kwenze ukuba kube lula ukubuyisela indawo yesayithi eceliweyo ngokufaka endaweni yesihloko esithi “Inginginya:”. Uhlaselo lunokusetyenziselwa ukutyhefa imixholo yenkqubo ye-caching yomxholo kunye nokukhupha idatha eyimfihlo efihliweyo. Incopho yendlela yayiyintlangano yokuhlaselwa kwe-PayPal, eyenza kube lula ukuthintela amagama agqithisiweyo athunyelwe ngabasebenzisi ngexesha lokuqinisekisa (isicelo se-iframe salungiswa ukwenza iJavaScript kumxholo wekhasi le-paypal.com/us/gifts, kuba apho i-CSP (uMgaqo-nkqubo woKhuseleko lwesiqulatho) ayizange isetyenziswe).
Okubangela umdla kukuba, ngo-2005 kwakukho
umthombo: opennet.ru