成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Cookie 和 Session

monw3c / 1125人閱讀

摘要:服務(wù)端設(shè)置好后,將會(huì)通過響應(yīng)頭返回給瀏覽器。注意是在中發(fā)送的,所以之前不能有任何輸出。數(shù)據(jù)存儲(chǔ)在客戶端,容易被攔截篡改,不安全。數(shù)據(jù)存放在服務(wù)端,安全。當(dāng)落入第三者時(shí),服務(wù)端將無法分辨出是否是合法的請(qǐng)求。

Cookie 起源

當(dāng)初 W3C 在設(shè)計(jì) Cookie 時(shí)實(shí)際上考慮的是為了記錄用戶在一段時(shí)間內(nèi)訪問 Web 應(yīng)用的行為路徑。

由于HTTP 協(xié)議是一種無狀態(tài)協(xié)議,當(dāng)用戶的一次訪問請(qǐng)求結(jié)束后,后端服務(wù)器就無法知道下一次來訪問的還是不是上次訪問的用戶。
Cookie 的作用正是在此,由于是同一個(gè)客戶端發(fā)出的請(qǐng)求,每次發(fā)出的請(qǐng)求都會(huì)帶有上一次訪問時(shí)服務(wù)端設(shè)置的信息,這樣服務(wù)端就可以根據(jù)之前存入 Cookie 的值來做相應(yīng)的處理(區(qū)分訪問的用戶等)。

作用

解決了客戶端和服務(wù)端之間的無狀態(tài)

通俗地講就是當(dāng)一個(gè)用戶通過 HTTP 協(xié)議訪問一個(gè)服務(wù)器的時(shí)候,服務(wù)器會(huì)根據(jù)需要設(shè)置一些 Cookie 信息(Key/Value 鍵值對(duì)),并給這些數(shù)據(jù)加上一些限制條件,再以響應(yīng)頭的形式返回給客戶端瀏覽器。在條件符合時(shí)這個(gè)用戶下次訪問這個(gè)服務(wù)器的時(shí)候,數(shù)據(jù)又被完整地帶回給服務(wù)器。

流程簡介

當(dāng)客戶端瀏覽器發(fā)送請(qǐng)求時(shí),會(huì)根據(jù)自身的設(shè)置找尋相應(yīng)條件下的 Cookie 信息并解析。若找到,則設(shè)置相應(yīng)的請(qǐng)求頭信息,再發(fā)送請(qǐng)求,否則直接發(fā)送請(qǐng)求。

服務(wù)端設(shè)置好 $_COOKIE 后,將會(huì)通過響應(yīng)頭返回給瀏覽器。注意: Cookie 是在 header 中發(fā)送的,所以之前不能有任何輸出。

缺點(diǎn)

每次請(qǐng)求都會(huì)攜帶全部的 Cookie 信息,容易造成不必要的帶寬浪費(fèi)。

每個(gè)瀏覽器對(duì) Cookie 在同一個(gè)域名下的個(gè)數(shù)和每個(gè) Cookie 的總大小(4kb)都有相應(yīng)的限制。

數(shù)據(jù)存儲(chǔ)在客戶端,容易被攔截篡改,不安全。

客戶端可以禁用 Cookie,導(dǎo)致功能失效。

難于管理,大型系統(tǒng)里每個(gè)應(yīng)用都會(huì)有自己的 Cookie,加上以上的限制,容易出現(xiàn)數(shù)據(jù)被截取,導(dǎo)致數(shù)據(jù)丟失。

Session

基于以上的缺點(diǎn), Session 來了。

流程簡介

服務(wù)端(默認(rèn)設(shè)置)接受請(qǐng)求時(shí),先查看 $_COOKIE 中是否存在 name 為 PHPSESSID 的鍵值對(duì)(value 為服務(wù)端生成的 SESSION_ID:bebfaf6c745c1a6e5f341baf2178113b)。

若不存在(第一次請(qǐng)求),將會(huì)自動(dòng)生成 SESSION_ID,寫入到 $_COOKIE 數(shù)組中(name 為 PHPSESSID, value 為 SESSION_ID),然后通過響應(yīng)頭返回給瀏覽器。

若存在(非第一次請(qǐng)求),則根據(jù) value 值到設(shè)置的目錄下獲取相應(yīng)的文件,反序列化并寫入到 $_SESSION 數(shù)組供后續(xù)使用。

當(dāng)服務(wù)端進(jìn)行 $_SESSION 設(shè)置時(shí),此 $_SESSION 只會(huì)維持在內(nèi)存中。當(dāng)腳本執(zhí)行結(jié)束時(shí),將會(huì)自動(dòng)把 $_SESSION 序列化后寫入到 SESSION_ID 對(duì)應(yīng)的文件中(創(chuàng)建或覆蓋)。

優(yōu)點(diǎn)

只將會(huì)話標(biāo)識(shí)符放到 Cookie 里,減少帶寬的傳輸。

可以存儲(chǔ)大量的信息,基本沒有空間上的限制。

數(shù)據(jù)存放在服務(wù)端,安全。

可以統(tǒng)一集中式管理。

聯(lián)系

SESSION 為了識(shí)別會(huì)話,需要傳輸一個(gè)唯一的 SESSION_ID 到客戶端。一般情況下,都是借助 Cookie 來傳遞,當(dāng)然也可以通過其他方式進(jìn)行傳遞。

Session 安全延伸

以上分析得出, Session 需要通過 SESSION_ID 來識(shí)別客戶端,這就會(huì)導(dǎo)致一個(gè)安全隱患。當(dāng) SESSION_ID 落入第三者時(shí),服務(wù)端將無法分辨出是否是合法的請(qǐng)求。

一個(gè)簡單的防御措施就是:每次請(qǐng)求時(shí)都生成一個(gè)新的 SESSION_ID 關(guān)聯(lián)到對(duì)應(yīng)的數(shù)據(jù)并將老的 SESSION_ID 刪除。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22653.html

相關(guān)文章

  • sessioncookie

    摘要:的作用就是為了解決協(xié)議無狀態(tài)的缺陷所作的努力。的內(nèi)容主要包括名字,值,過期時(shí)間,路徑和域。這種生命期為瀏覽器會(huì)話期的被稱為會(huì)話。而機(jī)制采用的是一種在服務(wù)器端保持狀態(tài)的解決方案。中的有效期默認(rèn)分鐘,也就是說,客戶端超過分鐘,當(dāng)前就會(huì)失效。 會(huì)話控制是什么? cookie和session都是跟蹤整個(gè)會(huì)話過程的技術(shù)手段。而會(huì)話,就是用戶通過瀏覽器和服務(wù)器的一次通話。 為什么要有會(huì)話控制? 因...

    ruicbAndroid 評(píng)論0 收藏0
  • sessioncookie機(jī)制及l(fā)aravel框架下相關(guān)應(yīng)用

    摘要:服務(wù)器檢查該,以此來辨認(rèn)用戶狀態(tài)。五下的相關(guān)應(yīng)用應(yīng)用在中配置如下配置項(xiàng)用于設(shè)置存儲(chǔ)方式,默認(rèn)是,即存儲(chǔ)在文件中,該文件位于配置項(xiàng)配置的路徑,即。配置項(xiàng)用于設(shè)置有效期,默認(rèn)為分鐘。配置項(xiàng)用于配置數(shù)據(jù)是否加密。 一、cookie的由來 ??當(dāng)用戶訪問某網(wǎng)站時(shí),web服務(wù)器會(huì)將部分信息保存到本地計(jì)算機(jī)上,當(dāng)用戶再次關(guān)顧該網(wǎng)站時(shí),服務(wù)器會(huì)去查看用戶是否登錄過該網(wǎng)站,如果登錄過,就會(huì)將這些記錄在...

    NicolasHe 評(píng)論0 收藏0
  • Cookie Session 區(qū)別匯總

    摘要:無狀態(tài)協(xié)議無狀態(tài)協(xié)議,是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。是通過客戶端保持狀態(tài)的解決方案。而這次,信息則存放在請(qǐng)求頭了。 HTTP無狀態(tài)協(xié)議 HTTP無狀態(tài)協(xié)議,是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方...

    Kross 評(píng)論0 收藏0
  • Cookie Session 區(qū)別匯總

    摘要:無狀態(tài)協(xié)議無狀態(tài)協(xié)議,是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。是通過客戶端保持狀態(tài)的解決方案。而這次,信息則存放在請(qǐng)求頭了。 HTTP無狀態(tài)協(xié)議 HTTP無狀態(tài)協(xié)議,是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方...

    Jinkey 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<