--個(gè)人理解會(huì)存在些錯(cuò)誤僅供參考!!!
----瀏覽器保持會(huì)話狀態(tài)原理
用戶發(fā)送一次請(qǐng)求,服務(wù)器端會(huì)檢索報(bào)文中是否存在sessionid不存在,就分配一個(gè)寫到cookie當(dāng)中,存在
瀏覽器的緩存中,當(dāng)再次請(qǐng)求時(shí),又被發(fā)送到服務(wù)器端,檢索有的話,說明是同一客戶端;
---session客戶端原理:
當(dāng)用戶發(fā)出請(qǐng)求后,就會(huì)在服務(wù)端開辟一塊空間來存儲(chǔ)session對(duì)象,瀏覽器通過發(fā)送服務(wù)端的cookie中的sessionid就能找到唯一標(biāo)識(shí)的session;
session也是用的對(duì)象池技術(shù);
---viewstate原理:
有兩個(gè)問題:當(dāng)客戶端提交表單,并封裝成http報(bào)文通過socket發(fā)給服務(wù)端,服務(wù)器怎么會(huì)知道用戶點(diǎn)擊了哪
個(gè)按鈕呢?那文本框的exchanged事件又是怎么觸發(fā)的呢? 其實(shí)就是添加了hidden隱藏域標(biāo)記;打開瀏覽器頁(yè)面后臺(tái)代碼,會(huì)看到許多亂碼,而這些亂碼提交給服務(wù)器, 就會(huì)生成存儲(chǔ)頁(yè)面狀態(tài)的原始數(shù)據(jù);這些數(shù)據(jù)就告訴服務(wù)器客戶端做了哪些事情, exchanged時(shí)間,通過比較隱藏域的存儲(chǔ)的值和新狀態(tài)的值,就可以知道,值是否發(fā)生了變化,是否要觸發(fā) exchanged事件。處理完成后,又會(huì)將新的viewstate覆蓋原來的viewstate,重新生成hidden給客戶端,來就行 下一次的提交。
--cookie查看http請(qǐng)求報(bào)文中就可以知道cookie會(huì)隨報(bào)文來回傳遞。后臺(tái)通過request可是獲取cookie,通過response設(shè)置cookie,當(dāng)隨響應(yīng)報(bào)文傳輸?shù)娇蛻舳耍瑫?huì)加載到瀏覽器的cookie中。這樣cookie就可以承載數(shù)據(jù)了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
