Kêşeya pirsgirêkê ev e ku pêş û paşverû bi gelemperî ji protokola HTTP-ê re astên cûda piştgirî peyda dikin, lê di heman demê de daxwazên bikarhênerên cihêreng di kanalek hevpar de vedihewînin. Ji bo girêdana daxwazên wergirtina pêşiyê û daxwazên pêvajoyek paşîn, pêwendiyek TCP-ya demdirêj tê saz kirin, bi navgîniya ku daxwazên bikarhêner têne veguheztin, li ser zincîrê yek li dû hev têne veguheztin, bi riya protokola HTTP ve têne veqetandin. Ji bo veqetandina daxwazan, sernavên "Naverok-Drêjahî" (mezinahiya giştî ya daneyên di daxwaznameyê de diyar dike) û "
Pirsgirêk çêdibe heke pêşiyê tenê "Naverok-Drêjahî" piştgirî bike lê "Veguheztin-Encoding: perçekirî" paşguh bike (mînak, Akamai CDN ev kir) an berevajî. Ger Veguheztin-Encoding: chunked ji her du aliyan ve were piştgirî kirin, taybetmendiyên bicîhkirinê yên parserên sernavê HTTP dikarin ji bo êrîşekê werin bikar anîn (mînak, dema ku dawiya pêşîn rêzên mîna "Veguhezandin-Encoding: xchunked", "Veguheztin-Encoding: perçekirî" paşguh dike. ”, “Transfer-Encoding” :[tab]qelişkirî”, “X: X[\n]Veguhestinê-Encoding: perçekirî”, “Transfer-Encoding[\n]: perçekirî” an “Transfer-Encoding : chunked”, û paşîn bi serfirazî wan pêvajoyê dike).
Di vê rewşê de, êrîşkar dikare daxwaznameyekê bişîne ku hem sernavên "Naverok-Deng" û "Transfer-Encoding: chunked" dihewîne, lê mezinahiya di "Naverok-Drêjahî" de bi mezinahiya zincîra perçekirî re nagunce. ji nirxa rastîn piçûktir e. Heke pêşiyê daxwazê li gorî "Naverok-Drêjahî" bişopîne û pêşde bixe û paşverû li benda qedandina blokê li ser bingeha "Veguhezandin-Encoding: perçekirî" be, wê hingê dawiya daneya li ser bingeha "Veguheztin-Encoding: perçekirî" dê ji zû ve hatî destnîşankirin û tiliya mayî ya daxwazê êrişker dê di destpêka daxwaza din de be, I.E. êrîşkar dê bikaribe daneyên keyfî bi destpêka daxwaza kesek din ve girêbide ku paşê hatî şandin.
Ji bo destnîşankirina pirsgirêkê di berhevoka paşverû ya pêşîn de, hûn dikarin daxwazek bi vî rengî bi riya pêşgir bişînin:
POST /li ser HTTP/1.1
Mêvandar: example.com
Veguheztin-Encoding: perçekirî
Dirêj-naverok: 4
1
Z
Q
Pirsgirêk heye heke paşîn tavilê daxwazê neke û li benda hatina bloka sînorê sifir a paşîn a daneya perçebûyî bimîne. Ji bo kontrolek bêkêmasî
Pêkanîna êrîşek rastîn bi kapasîteyên malpera êrîşkirî ve girêdayî ye, mînakî, dema ku êrîşî serîlêdana webê ya Trello bike, hûn dikarin destpêka daxwazê biguhezînin (daneyên wekî "PUT /1/endam/1234... x=x&csrf =1234&username=testzzz&bio=cake”) û peyamek bişînin tevî daxwaza orîjînal a bikarhênerek sêyemîn û Cookie-ya rastkirinê ya ku tê de hatî destnîşan kirin. Ji bo êrîşek li ser saas-app.com, derket holê ku meriv di bersivê de koda JavaScript-ê bi cîh kirina yek ji pîvanên daxwazê ve biguhezîne. Ji bo êrîşa li ser redhat.com, kargêrek navxweyî hate bikar anîn ku beralîkirina malpera êrîşkar (daxwazek forma "POST /search?dest=../assets/idx?redir=//[email parastî]/ HTTP/1.1").
Bikaranîna rêbazê ji bo torên radestkirina naverokê ev gengaz kir ku bi tenê cîhgirtina malpera daxwazkirî bi guheztina sernavê "Host:". Di heman demê de êrîş dikare were bikar anîn da ku naveroka pergalên cachkirina naverokê jehr bike û daneyên nepenî yên cached derxe. Pîvana rêbazê organîzekirina êrîşek li ser PayPal bû, ku îmkan da ku şîfreyên ku ji hêla bikarhêneran ve hatine şandin di dema erêkirinê de were girtin (daxwaza iframe hate guheztin ku JavaScript di çarçoweya rûpela paypal.com/us/gifts de bicîh bike, ji bo kîjan CSP (Siyaseta Ewlekariya Naverokê) nehat sepandin).
Balkêş e ku di sala 2005 de hebû
Source: opennet.ru