Mwakpo na sistemu ngwụcha azụ azụ nke na-enye anyị ohere ịbanye n'ime arịrịọ ndị ọzọ

Ekpughere nkọwa nke mbuso agha ọhụrụ na saịtị ndị na-eji ụdị azụ azụ azụ azụ, dị ka ndị na-agba ọsọ site na netwọk nnyefe ọdịnaya, ndị na-ebu ibu ma ọ bụ proxies. Mwakpo a na-enye ohere, site na izipu ụfọdụ arịrịọ, ịbanye n'ime ọdịnaya nke arịrịọ ndị ọzọ edoziri n'otu eri n'etiti frontend na azụ azụ. A na-eji usoro a tụrụ aro mee ihe nke ọma iji hazie ọgụ nke mere ka o kwe omume igbochi paramita nyocha nke ndị ọrụ nke ọrụ PayPal, bụ ndị na-eme nchọpụta na-akwụ ihe dị ka puku dollar 40 dị ka akụkụ nke mmemme iji mee ka a mara banyere ọnụnọ nke adịghị ike na-adịghị. Mwakpo a dịkwa na saịtị na-eji netwọk nnyefe ọdịnaya Akamai.

Ihe kpatara nsogbu ahụ bụ na frontends na backend na-enyekarị nkwado dị iche iche maka protocol HTTP, mana n'otu oge ahụ na-ekpuchi arịrịọ sitere n'aka ndị ọrụ dị iche iche n'ime ọwa nkịtị. Iji jikọọ arịrịọ na-anata frontend na arịrịọ nhazi azụ azụ, a na-ewepụta njikọ TCP dị ogologo, site na nke a na-ebufe arịrịọ onye ọrụ, na-ebufe ya na agbụ otu otu, kewapụrụ site na protocol HTTP. Iji kewaa arịrịọ, ndị nkụnye eji isi mee "Ọdịnaya- Ogologo" (na-ekpebi ọnụọgụ data dị na arịrịọ ahụ) na "Nyefee-nkode: chunked"( na-enye gị ohere ịnyefe data n'akụkụ, na-akọwapụta ngọngọ nke nha dị iche iche n'ụdị "{size}\r\n{block}\r\n{size}\r\n{block}\r\n0").

Nsogbu na-ebilite ma ọ bụrụ na ihu ihu na-akwado naanị "Ọdịnaya-Ọdịnaya" mana na-eleghara "Nbugharị-Encoding: chunked" (dịka ọmụmaatụ, Akamai CDN mere nke a) ma ọ bụ ọzọ. Ọ bụrụ na ntinye ntinye: chunked na-akwado n'akụkụ abụọ ahụ, enwere ike iji njirimara mmejuputa nke ihe ntụgharị HTTP nkụnye eji isi mee maka mbuso agha (dịka ọmụmaatụ, mgbe njedebe n'ihu na-eleghara ahịrị dị ka "Ngbanwe-Encoding: xchunked", "Nnyefe-Encoding: chunked" "," Nyefe-Encoding ": [tab] chunked", "X: X[\n] Nyefee-Encoding: chunked", "Nnyefe-Encoding[\n]: chunked" ma ọ bụ "Nnyefe-Encoding: chunked", na backend na-ahazi ha nke ọma).

N'okwu a, onye na-awakpo nwere ike izipu arịrịọ nke nwere ma "Content-Length" na "Transfer-Encoding: chunked" nkụnye eji isi mee, mana nha dị na "Ọdịnaya-Ogologo" adabaghị nha nke yinye chunked, nke dị obere karịa uru ọ bara. Ọ bụrụ na usoro frontend na-ebuga arịrịọ dị ka "Ọdịnaya- Ogologo" na azụ azụ na-eche ka ngọngọ ahụ mezue dabere na "Nnyefe-Encoding: chunked", mgbe ahụ njedebe nke data dabere na "Nnyefe-Encoding: chunked" ga- kpebisie ike na mbụ na ọdụ fọdụrụ nke arịrịọ ahụ onye mwakpo ahụ ga-anọ na mmalite nke arịrịọ ọzọ, ya bụ. onye na-awakpo ahụ ga-enwe ike itinye data aka ike na mmalite nke arịrịọ onye ọzọ ebufere na-esote.

Mwakpo na sistemu ngwụcha azụ azụ nke na-enye anyị ohere ịbanye n'ime arịrịọ ndị ọzọ

Iji chọpụta nsogbu dị na nchikota frontend-backend ejiri, ị nwere ike izipu arịrịọ dị ka nke a site na frontend:

POST / gbasara HTTP/1.1
Onye ọbịa: example.com
Nyefee-nkode: chunked
Ọdịnaya-Ogologo: 4

1
Z
Q

Nsogbu dị ugbu a ma ọ bụrụ na azụ azụ anaghị edozi arịrịọ ahụ ozugbo wee chere ọbịbịa nke njedebe efu efu nke chunked data. Maka nlele zuru oke kwadebere ngwa pụrụ iche nke na-anwale ụzọ enwere ike isi zoo isi okwu "Nfefe-Encoding: chunked" site na frontend.

Ime ezigbo mwakpo na-adabere n'ikike nke saịtị a wakporo, dịka ọmụmaatụ, mgbe ị na-awakpo ngwa weebụ Trello, ị nwere ike dochie mmalite nke arịrịọ ahụ (data dochie anya "PUT / 1 / members / 1234 ... x = x & csrf). =1234&username=testzzz&bio=cake”) ma ziga ozi gụnyere arịrịọ izizi nke onye ọrụ nke atọ yana kuki njirimara akọwapụtara na ya. Maka mbuso agha na saas-app.com, ọ tụgharịrị na ọ ga-ekwe omume iji dochie koodu Javascript na nzaghachi site na dochie ya n'otu n'ime usoro arịrịọ. Maka mbuso agha na redhat.com, a na-eji onye na-ahụ maka ime ime redirect gaa na webụsaịtị onye mwakpo (arịrịọ nke ụdị "POST /search?dest=../assets/idx?redir=//)[email protected]/ HTTP/1.1").

Iji usoro maka netwọk nnyefe ọdịnaya mere ka o kwe omume iji dochie saịtị achọrọ site n'ịgbanwe isi okwu "Ọbịa:". Enwere ike iji mwakpo ahụ mebie ọdịnaya nke sistemu nchekwa ọdịnaya wee wepụta data nzuzo echekwara. Isi usoro nke usoro a bụ nhazi nke mbuso agha na PayPal, nke mere ka o kwe omume igbochi okwuntughe nke ndị ọrụ zitere n'oge nyocha (arịrịọ iframe ka agbanwere iji mebie Javascript n'ọnọdụ nke paypal.com/us/gifts page, maka nke CSP (Amụma Nchekwa Ọdịnaya) etinyeghị ya n'ọrụ).

N'ụzọ na-akpali mmasị, na 2005 e nwere chọrọ Usoro ịrịọ arịrịọ yiri nke ahụ nke na-enye gị ohere ị nweta data na caching proxies (Tomcat, squid, mod_proxy) ma ọ bụ gbochie mgbochi firewall site na ịkọwa ọtụtụ arịrịọ "GET" ma ọ bụ "POST" n'ime otu nnọkọ HTTP.

isi: opennet.ru

Tinye a comment