Ukuhlaselwa kwamasistimu angaphambili-emuva-emuva okusivumela ukuthi singenele izicelo zezinkampani zangaphandle

Kwembulwa imininingwane yokuhlaselwa okusha kumasayithi asebenzisa imodeli yangaphambili-emuva-emuva, njengalawo asebenzisa amanethiwekhi okulethwa kokuqukethwe, izilinganisi zokulayisha noma ama-proxi. Ukuhlasela kuvumela, ngokuthumela izicelo ezithile, ukuthi zingene kokuqukethwe kwezinye izicelo ezicutshungulwe kuchungechunge olufanayo phakathi kwe-frontend ne-backend. Indlela ehlongozwayo isetshenziswe ngempumelelo ukuhlela ukuhlasela okwenze kwaba nokwenzeka ukunqanda imingcele yokuqinisekisa yabasebenzisi besevisi ye-PayPal, ekhokhele abacwaningi mayelana namadola ayizinkulungwane ezingu-40 njengengxenye yohlelo lokwazisa ngobukhona bobungozi obungavaliwe. Lokhu kuhlasela kuyasebenza nakumasayithi asebenzisa inethiwekhi yokulethwa kokuqukethwe kwe-Akamai.

I-crux yenkinga ukuthi ama-frontend nama-backends ngokuvamile ahlinzeka ngamazinga ahlukene okusekela iphrothokholi ye-HTTP, kodwa ngesikhathi esifanayo ahlanganisa izicelo ezivela kubasebenzisi abahlukene esiteshini esisodwa. Ukuxhuma izicelo zokwamukela i-frontend kanye nezicelo zokucubungula i-backend, uxhumano lwe-TCP oluhlala isikhathi eside luyasungulwa, lapho izicelo zomsebenzisi zithunyelwa khona, zidluliselwe eceleni kweketango ngokulandelana, kuhlukaniswe nge-protocol ye-HTTP. Ukuze kuhlukaniswe izicelo, izihloko "Ubude-Okuqukethwe" (inquma isamba sosayizi wedatha esicelweni) kanye "Ukudlulisa-Umbhalo Wekhodi: kunqunyiwe"(ikuvumela ukuthi udlulise idatha ngezingxenye, ucacise amabhulokhi anosayizi abahlukene ngefomethi "{size}\r\n{block}\r\n{size}\r\n{block}\r\n0").

Inkinga ivela uma indawo engaphambili isekela kuphela “Ubude Bokuqukethwe” kodwa indiba “Ukudlulisa-Umbhalo Wekhodi: okucushiwe” (ngokwesibonelo, i-Akamai CDN yenze lokhu) noma okuphambene nalokho. Uma Ukudlulisa-Umbhalo Wekhodi: i-chunked isekelwa nhlangothi zombili, izici zokuqalisa zohlalutyi bezihloko ze-HTTP zingasetshenziselwa ukuhlasela (isibonelo, uma isiphetho sangaphambili singaziba imigqa efana nokuthi “Dlulisa-Umbhalo Wekhodi: xchunked”, “Dlulisa-Umbhalo Wekhodi: chunked ”, “Dlulisa-Umbhalo Wekhodi” :[ithebhu]i-chunked", "X: X[\n]Dlulisa-Umbhalo Wekhodi: chunked", "Dlulisa-Umbhalo Wekhodi[\n]: chunked" noma "Dlulisa-Umbhalo Wekhodi : chunked", kanye i-backend iwacubungule ngempumelelo).

Kulesi simo, umhlaseli angathumela isicelo esiqukethe kokubili izihloko "Zobude Bokuqukethwe" kanye "Nekhodi Yokudlulisa: Iziqephu", kodwa usayizi othi "Ubude-Okuqukethwe" awuhambisani nosayizi weketango elihlutshiwe. lincane kunevelu yangempela. Uma i-frontend icubungula futhi idlulisela isicelo ngokuya "Ngobude Bokuqukethwe" futhi indawo engemuva ilinda ukuthi ibhulokhi iqedwe ngokusekelwe kokuthi "Dlulisa-Umbhalo Wekhodi: chunked", isiphetho sedatha esisekelwe kokuthi "Dlulisa-Umbhalo Wekhodi: chunked" kunqunywa ngaphambili futhi umsila osele wesicelo umhlaseli uzovela ekuqaleni kwesicelo esilandelayo, i.e. umhlaseli uzokwazi ukunamathisela idatha engafanele ekuqaleni kwesicelo somunye esithunyelwa ngokulandelayo.

Ukuhlaselwa kwamasistimu angaphambili-emuva-emuva okusivumela ukuthi singenele izicelo zezinkampani zangaphandle

Ukuze unqume inkinga ekuhlanganisweni kwe-frontend-backend esetshenzisiwe, ungathumela isicelo esinjengalesi nge-frontend:

THUMELA/mayelana ne-HTTP/1.1
Umphathi: example.com
Ukudlulisa-Umbhalo Wekhodi: kunqunyiwe
Ubude-bokuqukethwe: 4

1
Z
Q

Inkinga ikhona uma i-backend ingasicubunguli ngokushesha isicelo futhi ilinda ukufika kwebhlokhi yokugcina enguziro yedatha ehlanganisiwe. Ukuze uthole isheke eliphelele ilungisiwe insiza ekhethekile ephinda ihlole izindlela ezingaba khona zokufihla isihloko esithi “Dlulisa-Umbhalo Wekhodi: chunked” ukusuka endaweni engaphambili.

Ukwenza ukuhlasela kwangempela kuncike emandleni esayithi elihlaselwe, isibonelo, lapho uhlasela uhlelo lwewebhu lwe-Trello, ungabuyisela isiqalo sesicelo (ukushintsha idatha njengokuthi “PUT /1/members/1234... x=x&csrf =1234&username=testzzz&bio=cake”) futhi uthumele umlayezo ohlanganisa nesicelo sangempela somsebenzisi wenkampani yangaphandle kanye ne-Cookie yokuqinisekisa ecaciswe kuyo. Ngokuhlaselwa kwe-saas-app.com, kube nokwenzeka ukuthi kushintshwe ikhodi ye-JavaScript empendulweni ngokuyishintsha kwenye yezinhlaka zesicelo. Ekuhlaselweni kwe-redhat.com, isibambi sangaphakathi sisetshenziswe ukuqondisa kabusha kuwebhusayithi yomhlaseli (isicelo sefomu elithi “THUMELA /search?dest=../assets/idx?redir=//[i-imeyili ivikelwe]/ HTTP/1.1").

Ukusebenzisa indlela yamanethiwekhi okulethwa kokuqukethwe kwenze kwaba nokwenzeka ukumane umiselele isayithi eliceliwe ngokushintsha isihloko esithi “Host:". Lokhu kuhlasela kungase futhi kusetshenziselwe ukufaka ushevu kokuqukethwe kwezinhlelo zokulondoloza inqolobane yokuqukethwe futhi kukhishwe idatha eyimfihlo egcinwe kunqolobane. Ingqikithi yendlela kwakuwukuhlelwa kokuhlaselwa kwe-PayPal, okwenze kwaba nokwenzeka ukubamba amaphasiwedi athunyelwe abasebenzisi ngesikhathi sokuqinisekisa (isicelo se-iframe sashintshwa ukuze kusetshenziswe i-JavaScript kumongo wekhasi le-paypal.com/us/gifts, ukuze i-CSP (Inqubomgomo Yokuphepha Kokuqukethwe) engazange isetshenziswe).

Ngokuthakazelisayo, ngo-2005 kwakukhona ehlongozwayo indlela efanayo yokukhohlisa yesicelo ekuvumela ukuthi ugebe idatha kuma-proxies we-caching (i-Tomcat, squid, mod_proxy) noma udlule ukuvinjwa kwe-firewall ngokucacisa izicelo ezimbalwa "GET" noma "THUMELA" phakathi neseshini eyodwa ye-HTTP.

Source: opennet.ru

Engeza amazwana