Π‘ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎΠ½ΡΡΠ½Π΄Ρ ΠΈ Π±ΡΠΊΠ΅Π½Π΄Ρ Π·Π°ΡΠ°ΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΡΠ°Π·Π½ΡΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΎΠ±ΡΠΈΠΉ ΠΊΠ°Π½Π°Π». ΠΠ»Ρ ΡΠ²ΡΠ·ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΡ ΡΡΠΎΠ½ΡΡΠ½Π΄Π° ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΡ Π±ΡΠΊΠ΅Π½Π΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΡΠ΅Π΅ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅Π΄ΠΎΠΌ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP. ΠΠ»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ «Content-Length» (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π°Π½Π½ΡΡ
Π² Π·Π°ΠΏΡΠΎΡΠ΅) ΠΈ «
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΎΠ½ΡΡΠ½Π΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ «Content-Length», Π½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ «Transfer-Encoding: chunked» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ ΠΏΠΎΡΡΡΠΏΠ°Π» CDN Akamai) ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Transfer-Encoding: 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» Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ chunked-ΡΠ΅ΠΏΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎΠ½ΡΡΠ½Π΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π·Π°ΠΏΡΠΎΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ «Content-Length», Π° Π±ΡΠΊΠ΅Π½Π΄ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ «Transfer-Encoding: chunked», ΡΠΎ ΠΊΠΎΠ½Π΅Ρ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ «Transfer-Encoding: chunked» Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ ΡΠ°Π½ΡΡΠ΅ ΠΈ ΠΎΡΡΠ°Π²ΡΠΈΠΉΡΡ Ρ Π²ΠΎΡΡ Π·Π°ΠΏΡΠΎΡΠ° Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π½Π°ΡΠ°Π»Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, Ρ.Π΅. Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΊ Π½Π°ΡΠ°Π»Ρ ΡΡΠΆΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΠΎΠΌ.
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΡΠ²ΡΠ·ΠΊΠ΅ ΡΡΠΎΠ½ΡΡΠ½Π΄-Π±ΡΠΊΠ΅Π½Π΄ ΡΠ΅ΡΠ΅Π· ΡΡΠΎΠ½ΡΡΠ½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π²ΠΈΠ΄Π°:
POST /about HTTP/1.1
Host: example.com
Transfer-Encoding: chunked
Content-Length: 4
1
Z
Q
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ, Π΅ΡΠ»ΠΈ Π±ΡΠΊΠ΅Π½Π΄ ΡΡΠ°Π·Ρ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄Π° ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° chunked-Π΄Π°Π½Π½ΡΡ
. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΠΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π°ΡΠ°ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π°ΡΠ°ΠΊΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π°ΡΠ°ΠΊΠ΅ Π½Π° web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Trello ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΠ°Π»ΠΎ Π·Π°ΠΏΡΠΎΡΠ° (ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π²ΠΈΠ΄Π° «PUT /1/members/1234… x=x&csrf=1234&username=testzzz&bio=cake») ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² Π½ΡΠΌ Cookie Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ»Ρ Π°ΡΠ°ΠΊΠΈ Π½Π° saas-app.com ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ JavaScript-ΠΊΠΎΠ΄Π° Π² ΠΎΡΠ²Π΅Ρ, ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ»Ρ Π°ΡΠ°ΠΊΠΈ Π½Π° redhat.com Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΡ Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ (Π±ΡΠ» ΠΏΠΎΠ΄ΡΡΠ°Π²Π»Π΅Π½ Π·Π°ΠΏΡΠΎΡ Π²ΠΈΠ΄Π° «POST /search?dest=../assets/idx?redir=//[email protected]/ HTTP/1.1»).
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π»Ρ ΡΠ΅ΡΠ΅ΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° «Host:». ΠΡΠ°ΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠ° Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΡΡΠΈΠ½ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠ°Π»Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π°ΡΠ°ΠΊΠΈ Π½Π° PayPal, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΏΠ°ΡΠΎΠ»ΠΈ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΏΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (Π±ΡΠ»ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° iframe Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JavaScript Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ paypal.com/us/gifts, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ CSP (Content Security Policy)).
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ Π² 2005 Π³ΠΎΠ΄Ρ Π±ΡΠ»Π°
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru