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

資訊專欄INFORMATION COLUMN

詳解 Cookie 和 Session 關(guān)系和區(qū)別

microelec / 1067人閱讀

摘要:目前大多數(shù)的應(yīng)用都是用實(shí)現(xiàn)跟蹤的。的安全性一般,他人可通過分析存放在本地的并進(jìn)行欺騙。在安全性第一的前提下,選擇更優(yōu)??紤]到減輕服務(wù)器性能方面,應(yīng)當(dāng)適時(shí)使用。因此,維持一個(gè)會(huì)話的核心就是客戶端的唯一標(biāo)識(shí),即。

在技術(shù)面試中,經(jīng)常被問到“說說Cookie和Session的區(qū)別”,大家都知道,Session是存儲(chǔ)在服務(wù)器端的,Cookie是存儲(chǔ)在客戶端的,然而如果讓你更詳細(xì)地說明,你能說出幾點(diǎn)?今天個(gè)推君就和大家談?wù)劇癈ookie和Session”的那些事兒。

Cookie是什么?

從它的詞語本身含義來看: Cookie: n. 餅干;小甜點(diǎn) N-COUNT A cookie is a piece of computer software which enables a website you have visited to recognize you if you visit it again. 再次訪問某一網(wǎng)站時(shí),能令網(wǎng)站識(shí)別訪問人的計(jì)算機(jī)軟件。

Cookie是客戶端保存用戶信息的一種機(jī)制,用來記錄用戶的一些信息。如何識(shí)別特定的客戶呢?cookie就可以做到。每次HTTP請(qǐng)求時(shí),客戶端都會(huì)發(fā)送相應(yīng)的Cookie信息到服務(wù)端。它的過期時(shí)間可以任意設(shè)置,如果你不主動(dòng)清除它,在很長(zhǎng)一段時(shí)間里面都可以保留著,即便這之間你把電腦關(guān)機(jī)了。

既然它是存儲(chǔ)在客戶端的,換句話說通過某些手法我就可以篡改本地存儲(chǔ)的信息來欺騙服務(wù)端的某些策略,那該怎么辦呢?我們先按下不表,來看看另外一位朋友 —— Session。

Session是什么?

同樣,我們先來看看釋義: Session: 普通釋義:n. 會(huì)議;(法庭的)開庭;(議會(huì)等的)開會(huì);學(xué)期;講習(xí)會(huì) 計(jì)算機(jī)釋義:會(huì)話

Session是在無狀態(tài)的HTTP協(xié)議下,服務(wù)端記錄用戶狀態(tài)時(shí)用于標(biāo)識(shí)具體用戶的機(jī)制。它是在服務(wù)端保存的用來跟蹤用戶的狀態(tài)的數(shù)據(jù)結(jié)構(gòu),可以保存在文件、數(shù)據(jù)庫或者集群中。在瀏覽器關(guān)閉后這次的Session就消失了,下次打開就不再擁有這個(gè)Session。其實(shí)并不是Session消失了,而是Session ID變了,服務(wù)器端可能還是存著你上次的Session ID及其Session 信息,只是他們是無主狀態(tài),也許一段時(shí)間后會(huì)被刪除。

實(shí)際上Cookie與Session都是會(huì)話的一種方式。它們的典型使用場(chǎng)景比如“購物車”,當(dāng)你點(diǎn)擊下單按鈕時(shí),服務(wù)端并不清楚具體用戶的具體操作,為了標(biāo)識(shí)并跟蹤該用戶,了解購物車中有幾樣物品,服務(wù)端通過為該用戶創(chuàng)建Cookie/Session來獲取這些信息。

如果你的站點(diǎn)是多節(jié)點(diǎn)部署,使用Nginx做負(fù)載均衡,那么有可能會(huì)出現(xiàn)Session丟失的情況(比如,忽然就處于未登錄狀態(tài))。這時(shí)可以使用IP負(fù)載均衡(IP綁定 ip_hash,每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決Session的問題),或者將Session信息存儲(chǔ)在集群中。在大型的網(wǎng)站中,一般會(huì)有專門的Session服務(wù)器集群,用來保存用戶會(huì)話,這時(shí)可以使用緩存服務(wù)比如Memcached或者Redis之類的來存放Session。

目前大多數(shù)的應(yīng)用都是用 Cookie 實(shí)現(xiàn)Session跟蹤的。第一次創(chuàng)建Session時(shí),服務(wù)端會(huì)通過在HTTP協(xié)議中反饋到客戶端,需要在 Cookie 中記錄一個(gè)Session ID,以便今后每次請(qǐng)求時(shí)都可分辨你是誰。有人問,如果客戶端的瀏覽器禁用了 Cookie 怎么辦?建議使用URL重寫技術(shù)進(jìn)行會(huì)話跟蹤,即每次HTTP交互,URL后面都被附加上諸如 sid=xxxxx 的參數(shù),以便服務(wù)端依此識(shí)別用戶。

換個(gè)姿勢(shì)~

客戶端和服務(wù)端之間的通信交流,可以這樣簡(jiǎn)單理解: 比如當(dāng)你在個(gè)推技術(shù)分享沙龍上覺得某位講師講得很好,在會(huì)后問了他幾個(gè)問題,他對(duì)你這些問題進(jìn)行了回答,這就是一個(gè)會(huì)話。但這個(gè)講師太受歡迎,于是工作人員收集問題,并給每個(gè)提問者一個(gè)號(hào)碼牌,講師按照號(hào)碼牌依次給出相應(yīng)解答并告訴相應(yīng)的人。這就是Session。一段時(shí)間后,當(dāng)你再次遇見這位講師,他發(fā)現(xiàn)你身上有上次回復(fù)你的答案,知曉你是那個(gè)好學(xué)的程序猿。于是你欣喜若狂,哇塞,講師居然認(rèn)出我了,這就是Cookie,你的小甜點(diǎn)??蛻舳撕帽嚷犝n的技術(shù)愛好者,服務(wù)端就是這位講師。

Cookie還可以在一些方便用戶的場(chǎng)景下使用。比如你某次登陸過一個(gè)網(wǎng)站,下次登錄的時(shí)候不想再次輸入賬號(hào)了,怎么辦?這個(gè)信息可以被寫到Cookie里面,當(dāng)訪問網(wǎng)站時(shí),網(wǎng)站頁面的腳本可以讀取這個(gè)信息,自動(dòng)填寫用戶名,方便用戶使用,給用戶一點(diǎn)甜頭。

總結(jié)語:

1、Cookie 在客戶端(瀏覽器),Session 在服務(wù)器端。 2、Cookie的安全性一般,他人可通過分析存放在本地的Cookie并進(jìn)行Cookie欺騙。在安全性第一的前提下,選擇Session更優(yōu)。重要交互信息比如權(quán)限等就要放在Session中,一般的信息記錄放Cookie就好了。 3、單個(gè)Cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)Cookie。 4、Session 可以放在 文件、數(shù)據(jù)庫或內(nèi)存中,比如在使用Node時(shí)將Session保存在redis中。由于一定時(shí)間內(nèi)它是保存在服務(wù)器上的,當(dāng)訪問增多時(shí),會(huì)較大地占用服務(wù)器的性能。考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)適時(shí)使用Cookie。 5、Session 的運(yùn)行依賴Session ID,而 Session ID 是存在 Cookie 中的,也就是說,如果瀏覽器禁用了 Cookie,Session 也會(huì)失效(但是可以通過其它方式實(shí)現(xiàn),比如在 url 中傳遞 Session ID)。 6、用戶驗(yàn)證這種場(chǎng)合一般會(huì)用 Session。因此,維持一個(gè)會(huì)話的核心就是客戶端的唯一標(biāo)識(shí),即Session ID。

題外話,那么話說Session Cookie能被篡改么? 理論上可以,只要改變了連接時(shí)的Session ID 就可以了~

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

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

相關(guān)文章

  • CookieSession詳解

    摘要:例如要想在多個(gè)二級(jí)域名中共享,需要設(shè)置為頂級(jí)域名,這樣就可以在所有二級(jí)域名里面或者到這個(gè)的值了。頂級(jí)域名只能獲取到設(shè)置為頂級(jí)域名的,設(shè)置為其他子級(jí)域名的無法獲取。 Cookie和Session詳解 Cookie Cookie只存儲(chǔ)在客服端 Cookie是什么:Cookies是web服務(wù)器存放在用戶硬盤的一段文本,Cookies允許一個(gè)wen站點(diǎn)在用戶的機(jī)器存放一些文本的信息,并可以在以...

    Little_XM 評(píng)論0 收藏0
  • 詳解 Cookie,Session,Token

    摘要:由于是存在客戶端上的,所以瀏覽器加入了一些限制確保不會(huì)被惡意使用,同時(shí)不會(huì)占據(jù)太多磁盤空間。簽名是對(duì)前兩部分的簽名,防止數(shù)據(jù)被篡改。的作用最開始的初衷是為了實(shí)現(xiàn)授權(quán)和身份認(rèn)證作用的,可以實(shí)現(xiàn)無狀態(tài),分布式的應(yīng)用授權(quán)。 前言 無狀態(tài)的HTTP協(xié)議 很久很久之前, Web基本都是文檔的瀏覽而已。既然是瀏覽, 作為服務(wù)器, 不需要記錄在某一段時(shí)間里都瀏覽了什么文檔, 每次請(qǐng)求都是一個(gè)新的HT...

    Allen 評(píng)論0 收藏0
  • cookiesession詳解

    摘要:所謂的無連接就是服務(wù)器收到了客戶端的請(qǐng)求之后,響應(yīng)完成并收到客戶端的應(yīng)答之后,即斷開連接。從而節(jié)省傳輸時(shí)間。協(xié)議對(duì)事務(wù)的處理沒有記憶能力。這種方式某種方面上講解放了服務(wù)器,但是卻不利于客戶端與服務(wù)器的連接。 session與cookie是什么? session與cookie屬于一種會(huì)話控制技術(shù).常用在身份識(shí)別,登錄驗(yàn)證,數(shù)據(jù)傳輸?shù)?舉個(gè)例子,就像我們?nèi)コ匈I東西結(jié)賬的時(shí)候,我們要拿出我...

    SwordFly 評(píng)論0 收藏0
  • cookiesession的使用(詳解

    摘要:什么是用來存儲(chǔ)客戶端的一小段文本是一門客戶端的技術(shù)因?yàn)槭谴鎯?chǔ)在客戶端瀏覽器中的是為了實(shí)現(xiàn)客戶端與服務(wù)器端之間的狀態(tài)的保持技術(shù),不安全,不要使用存儲(chǔ)敏感信息比如登錄狀態(tài)和登錄信息一些敏感的數(shù)據(jù)應(yīng)該存儲(chǔ)在服務(wù)器端的值從哪里來的當(dāng)你訪問一個(gè)網(wǎng)站這 什么是cookie, 用來存儲(chǔ)客戶端的一小段文本是一門客戶端的技術(shù) 因?yàn)閏ookie是存儲(chǔ)在客戶端瀏覽器中的是為了實(shí)現(xiàn) 客戶端與服務(wù)器端之間的狀態(tài)...

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

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

0條評(píng)論

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