ื”ืชืงืคื” ืขืœ ืžืขืจื›ื•ืช ื—ื–ื™ืช-ืื ื“-ื’ื‘ ื”ืžืืคืฉืจืช ืœื ื• ืœื”ืฉืชืœื‘ ื‘ื‘ืงืฉื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™

ื’ื™ืœื” ืคืจื˜ื™ื ืขืœ ื”ืชืงืคื” ื—ื“ืฉื” ืขืœ ืืชืจื™ื ืฉืžืฉืชืžืฉื™ื ื‘ืžื•ื“ืœ ื—ื–ื™ืชื™-ื’ื‘ื™, ื›ื’ื•ืŸ ืืœื• ื”ืคื•ืขืœื™ื ื“ืจืš ืจืฉืชื•ืช ืืกืคืงืช ืชื•ื›ืŸ, ืžืื–ื ื™ ืขื•ืžืกื™ื ืื• ืคืจื•ืงืกื™. ื”ืžืชืงืคื” ืžืืคืฉืจืช, ืขืœ ื™ื“ื™ ืฉืœื™ื—ืช ื‘ืงืฉื•ืช ืžืกื•ื™ืžื•ืช, ืœื”ืฉืชืœื‘ ื‘ืชื•ื›ืŸ ืฉืœ ื‘ืงืฉื•ืช ืื—ืจื•ืช ื”ืžืขื•ื‘ื“ื•ืช ื‘ืื•ืชื• ืฉืจืฉื•ืจ ื‘ื™ืŸ ื”-frontend ืœ-backend. ื”ืฉื™ื˜ื” ื”ืžื•ืฆืขืช ืฉื™ืžืฉื” ื‘ื”ืฆืœื—ื” ืœืืจื’ื•ืŸ ืžืชืงืคื” ืฉืื™ืคืฉืจื” ืœื™ื™ืจื˜ ืืช ืคืจืžื˜ืจื™ ื”ืื™ืžื•ืช ืฉืœ ืžืฉืชืžืฉื™ ืฉื™ืจื•ืช PayPal, ืฉืฉื™ืœื ืœื—ื•ืงืจื™ื ื›-40 ืืœืฃ ื“ื•ืœืจ ื‘ืžืกื’ืจืช ืชื•ื›ื ื™ืช ื›ื“ื™ ืœื™ื™ื“ืข ืขืœ ื ื•ื›ื—ื•ืชืŸ ืฉืœ ืคื’ื™ืขื•ื™ื•ืช ืฉืœื ืชื•ืงื ื•. ื”ืžืชืงืคื” ื—ืœื” ื’ื ืขืœ ืืชืจื™ื ื”ืžืฉืชืžืฉื™ื ื‘ืจืฉืช ืžืฉืœื•ื— ื”ืชื•ื›ืŸ Akamai.

ืขื™ืงืจ ื”ื‘ืขื™ื” ื”ื•ื ืฉ-frontends ื•-backends ืžืกืคืงื™ื ืœืจื•ื‘ ืจืžื•ืช ืฉื•ื ื•ืช ืฉืœ ืชืžื™ื›ื” ื‘ืคืจื•ื˜ื•ืงื•ืœ HTTP, ืืš ื‘ื•-ื–ืžื ื™ืช ืขื•ื˜ืคื™ื ื‘ืงืฉื•ืช ืžืžืฉืชืžืฉื™ื ืฉื•ื ื™ื ืœืขืจื•ืฅ ืžืฉื•ืชืฃ. ื›ื“ื™ ืœื—ื‘ืจ ืืช ื”ื‘ืงืฉื•ืช ื”ืžืงื‘ืœื•ืช ื‘ืงืฆื” ื”ืงืฆื” ื•ื‘ืงืฉื•ืช ื”ืขื™ื‘ื•ื“ ื”ืื—ื•ืจื™, ื ื•ืฆืจ ื—ื™ื‘ื•ืจ TCP ืืจื•ืš ื˜ื•ื•ื—, ื“ืจื›ื• ืžื•ืขื‘ืจื•ืช ื‘ืงืฉื•ืช ืžืฉืชืžืฉื™ื, ื”ืžืฉื•ื“ืจื•ืช ืœืื•ืจืš ื”ืฉืจืฉืจืช ื‘ื–ื• ืื—ืจ ื–ื•, ืžื•ืคืจื“ื•ืช ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ HTTP. ื›ื“ื™ ืœื”ืคืจื™ื“ ื‘ืงืฉื•ืช, ื”ื›ื•ืชืจื•ืช "ืชื•ื›ืŸ-ืื•ืจืš" (ืงื•ื‘ืข ืืช ื”ื’ื•ื“ืœ ื”ื›ื•ืœืœ ืฉืœ ื”ื ืชื•ื ื™ื ื‘ื‘ืงืฉื”) ื•- "ื”ืขื‘ืจืช ืงื™ื“ื•ื“: chunked"(ืžืืคืฉืจ ืœืš ืœื”ืขื‘ื™ืจ ื ืชื•ื ื™ื ื‘ื—ืœืงื™ื, ืชื•ืš ืฆื™ื•ืŸ ื‘ืœื•ืงื™ื ื‘ื’ื“ืœื™ื ืฉื•ื ื™ื ื‘ืคื•ืจืžื˜ "{ื’ื•ื“ืœ}\r\n{ื’ื•ืฉ}\r\n{ื’ื•ื“ืœ}\r\n{ื‘ืœื•ืง}\r\n0").

ื”ื‘ืขื™ื” ืžืชืขื•ืจืจืช ืื ื”-frontend ืชื•ืžืš ืจืง ื‘-"Content-Length" ืื‘ืœ ืžืชืขืœื ืž-"Transfer-Encoding: chunked" (ืœื“ื•ื’ืžื”, Akamai CDN ืขืฉื” ื–ืืช) ืื• ืœื”ื™ืคืš. ืื ื”ืขื‘ืจื”-ืงื™ื“ื•ื“: chunked ื ืชืžืš ืžืฉื ื™ ื”ืฆื“ื“ื™ื, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื•ืช ื”ื™ื™ืฉื•ื ืฉืœ ืžื ืชื—ื™ ื›ื•ืชืจื•ืช HTTP ืขื‘ื•ืจ ื”ืชืงืคื” (ืœื“ื•ื’ืžื”, ื›ืืฉืจ ื”ืงืฆื” ื”ืงื“ืžื™ ืžืชืขืœื ืžืฉื•ืจื•ืช ื›ืžื• "Transfer-Encoding: xchunked", "Transfer-Encoding: chunked" ", "Transfer-Encoding" :[tab]chunked", "X: X[\n]Transfer-Encoding: chunked", "Transfer-Encoding[\n]: chunked" ืื• "Transfer-Encoding: chunked", ื•ื›ืŸ ื”ืงืฆื” ื”ืื—ื•ืจื™ ืžืขื‘ื“ ืื•ืชื ื‘ื”ืฆืœื—ื”).

ื‘ืžืงืจื” ื–ื”, ืชื•ืงืฃ ื™ื›ื•ืœ ืœืฉืœื•ื— ื‘ืงืฉื” ื”ืžื›ื™ืœื” ื’ื ืืช ื”ื›ื•ืชืจื•ืช "Content-Length" ื•-"Transfer-Encoding: chunked", ืืš ื”ื’ื•ื“ืœ ื‘-"Content-Length" ืื™ื ื• ืชื•ืื ืœื’ื•ื“ืœ ื”ืฉืจืฉืจืช ื”ื—ืชื•ื›ื”, ืืฉืจ ืงื˜ืŸ ืžื”ืขืจืš ื”ืืžื™ืชื™. ืื ื”-frontend ืžืขื‘ื“ ื•ืžืขื‘ื™ืจ ืืช ื”ื‘ืงืฉื” ืœืคื™ "Content-Length" ื•ื”-backend ืžืžืชื™ืŸ ืœื”ืฉืœืžืช ื”ื‘ืœื•ืง ืขืœ ืกืžืš "Transfer-Encoding: chunked", ืื– ืกื•ืฃ ื”ื ืชื•ื ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ "Transfer-Encoding: chunked" ื™ื™ืงื‘ืข ืžื•ืงื“ื ื™ื•ืชืจ ื•ืืช ื”ื–ื ื‘ ื”ื ื•ืชืจ ืฉืœ ื”ื‘ืงืฉื” ื”ืชื•ืงืฃ ื™ื”ื™ื” ื‘ืชื—ื™ืœืช ื”ื‘ืงืฉื” ื”ื‘ืื”, ื›ืœื•ืžืจ. ื”ืชื•ืงืฃ ื™ื•ื›ืœ ืœืฆืจืฃ ื ืชื•ื ื™ื ืฉืจื™ืจื•ืชื™ื™ื ืœืชื—ื™ืœืช ื”ื‘ืงืฉื” ืฉืœ ืžื™ืฉื”ื• ืื—ืจ ืฉืฉื•ื“ืจื” ืœืื—ืจ ืžื›ืŸ.

ื”ืชืงืคื” ืขืœ ืžืขืจื›ื•ืช ื—ื–ื™ืช-ืื ื“-ื’ื‘ ื”ืžืืคืฉืจืช ืœื ื• ืœื”ืฉืชืœื‘ ื‘ื‘ืงืฉื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™

ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื”ื‘ืขื™ื” ื‘ืฉื™ืœื•ื‘ ื”-frontend-backend ื‘ืฉื™ืžื•ืฉ, ืชื•ื›ืœ ืœืฉืœื•ื— ื‘ืงืฉื” ื›ื–ื• ื“ืจืš ื”-frontend:

POST /ืื•ื“ื•ืช HTTP/1.1
ืžืืจื—: example.com
ื”ืขื‘ืจืช ืงื™ื“ื•ื“: chunked
ืชื•ื›ืŸ-ื–ืžืŸ: 4

1
Z
Q

ื”ื‘ืขื™ื” ืงื™ื™ืžืช ืื ื”ืงืฆื” ื”ืื—ื•ืจื™ ืœื ืžืขื‘ื“ ืžื™ื“ ืืช ื”ื‘ืงืฉื” ื•ืžื—ื›ื” ืœื”ื’ืขืชื• ืฉืœ ื‘ืœื•ืง ื”ืืคืก ื”ืชื•ื—ื ื”ืกื•ืคื™ ืฉืœ ื ืชื•ื ื™ ื ืชื—. ืœื‘ื“ื™ืงื” ืžืœืื” ื™ื•ืชืจ ืžื•ึผื›ึธืŸ ื›ืœื™ ืขื–ืจ ืžื™ื•ื—ื“ ืฉื‘ื•ื“ืง ื’ื ืฉื™ื˜ื•ืช ืืคืฉืจื™ื•ืช ืœื”ืกืชืจืช ื”ื›ื•ืชืจืช "Transfer-Encoding: chunked" ืžื”ื—ื–ื™ืช.

ื‘ื™ืฆื•ืข ื”ืชืงืคื” ืืžื™ืชื™ืช ืชืœื•ื™ ื‘ื™ื›ื•ืœื•ืช ื”ืืชืจ ื”ืžื•ืชืงืฃ, ืœืžืฉืœ, ื‘ืขืช ืชืงื™ืคืช ืืคืœื™ืงืฆื™ื™ืช ื”ืื™ื ื˜ืจื ื˜ ืฉืœ Trello, ื ื™ืชืŸ ืœื”ื—ืœื™ืฃ ืืช ืชื—ื™ืœืช ื”ื‘ืงืฉื” (ืชื—ืœื™ืฃ ื ืชื•ื ื™ื ื›ืžื• "PUT /1/members/1234... x=x&csrf =1234&username=testzzz&bio=cake") ื•ืœืฉืœื•ื— ื”ื•ื“ืขื” ื”ื›ื•ืœืœืช ืืช ื”ื‘ืงืฉื” ื”ืžืงื•ืจื™ืช ืฉืœ ืžืฉืชืžืฉ ืฆื“ ืฉืœื™ืฉื™ ื•ืืช ืขื•ื’ื™ื™ืช ื”ืื™ืžื•ืช ืฉืฆื•ื™ื ื” ื‘ื”. ืขื‘ื•ืจ ื”ืชืงืคื” ืขืœ saas-app.com, ื”ืชื‘ืจืจ ืฉื ื™ืชืŸ ืœื”ื—ืœื™ืฃ ืืช ืงื•ื“ JavaScript ื‘ืชื’ื•ื‘ื” ืขืœ ื™ื“ื™ ื”ื—ืœืคืชื• ื‘ืื—ื“ ืžืคืจืžื˜ืจื™ ื”ื‘ืงืฉื”. ืขื‘ื•ืจ ื”ืžืชืงืคื” ืขืœ redhat.com, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื˜ืคืœ ืคื ื™ืžื™ ื›ื“ื™ ืœื”ืคื ื•ืช ืœืืชืจ ืฉืœ ื”ืชื•ืงืฃ (ื‘ืงืฉื” ื‘ื˜ื•ืคืก "POST /search?dest=../assets/idx?redir=//[ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]/ HTTP/1.1").

ื”ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ื” ืœืจืฉืชื•ืช ืืกืคืงืช ืชื•ื›ืŸ ืืคืฉืจ ืคืฉื•ื˜ ืœื”ื—ืœื™ืฃ ืืช ื”ืืชืจ ื”ืžื‘ื•ืงืฉ ืขืœ ื™ื“ื™ ื”ื—ืœืคืช ื”ื›ื•ืชืจืช "ืžืืจื—:". ื”ืžืชืงืคื” ื™ื›ื•ืœื” ืœืฉืžืฉ ื’ื ื›ื“ื™ ืœื”ืจืขื™ืœ ืืช ื”ืชื•ื›ืŸ ืฉืœ ืžืขืจื›ื•ืช ืื—ืกื•ืŸ ืชื•ื›ืŸ ื‘ืžื˜ืžื•ืŸ ื•ืœื—ืœืฅ ื ืชื•ื ื™ื ืกื•ื“ื™ื™ื ื‘ืžื˜ืžื•ืŸ. ืคืกื’ืช ื”ืฉื™ื˜ื” ื”ื™ื™ืชื” ืืจื’ื•ืŸ ืžืชืงืคื” ืขืœ PayPal, ืฉืืคืฉืจื” ืœื™ื™ืจื˜ ืกื™ืกืžืื•ืช ืฉื ืฉืœื—ื• ืขืœ ื™ื“ื™ ืžืฉืชืžืฉื™ื ื‘ืžื”ืœืš ื”ืื™ืžื•ืช (ื‘ืงืฉืช ื”-iframe ืฉื•ื ืชื” ืœื‘ื™ืฆื•ืข JavaScript ื‘ื”ืงืฉืจ ืฉืœ ืขืžื•ื“ paypal.com/us/gifts, ืขื‘ื•ืจ ืืฉืจ CSP (ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ืช ืชื•ื›ืŸ) ืœื ื”ื•ื—ืœ).

ืžืขื ื™ื™ืŸ ืฉื‘-2005 ื”ื™ื” ืžื•ึผืฆึธืข ื˜ื›ื ื™ืงืช ื–ื™ื•ืฃ ื‘ืงืฉื•ืช ื“ื•ืžื” ื‘ืžื”ื•ืชื” ื”ืžืืคืฉืจืช ืœืš ืœื–ื™ื™ืฃ ื ืชื•ื ื™ื ื‘-Caching proxy (Tomcat, squid, mod_proxy) ืื• ืœืขืงื•ืฃ ื—ืกื™ืžืช ื—ื•ืžืช ืืฉ ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ ืžืกืคืจ ื‘ืงืฉื•ืช "GET" ืื• "POST" ื‘ืชื•ืš ื”ืคืขืœืช HTTP ืื—ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”