日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當(dāng)前位置: 首頁 >

cookie 和session 的区别

發(fā)布時(shí)間:2023/12/2 51 豆豆
默认站点 收集整理的這篇文章主要介紹了 cookie 和session 的区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

session是保存在服務(wù)器端的,cookie是保存在客戶端的。

二者的定義:

  當(dāng)你在瀏覽網(wǎng)站的時(shí)候,WEB 服務(wù)器會(huì)先送一小小資料放在你的計(jì)算機(jī)上,Cookie 會(huì)幫你在網(wǎng)站上所打的文字或是一些選擇,都紀(jì)錄下來。當(dāng)下次你再光臨同一個(gè)網(wǎng)站,WEB 服務(wù)器會(huì)先看看有沒有它上次留下的 Cookie 資料,有的話,就會(huì)依據(jù)Cookie里的內(nèi)容來判斷使用者,送出特定的網(wǎng)頁內(nèi)容給你。

   Cookie 的使用很普遍,許多有提供個(gè)人化服務(wù)的網(wǎng)站,都是利用 Cookie來辨認(rèn)使用者,以方便送出使用者量身定做的內(nèi)容,像是 Web 接口的免費(fèi) email 網(wǎng)站,都要用到 Cookie。具體來說cookie機(jī)制采用的是在客戶端保持狀態(tài)的方案,而session機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案。同時(shí)我們也看到,由于 采用服務(wù)器端保持狀態(tài)的方案在客戶端也需要保存一個(gè)標(biāo)識,所以session機(jī)制可能需要借助于cookie機(jī)制來達(dá)到保存標(biāo)識的目的,但實(shí)際上它還有其 他選擇。

  Cookie機(jī)制。正統(tǒng)的cookie分發(fā)是通過擴(kuò)展HTTP協(xié)議來實(shí)現(xiàn)的,服務(wù)器通過在HTTP的響應(yīng)頭中加上一行特殊的指示以提示瀏覽器按照指示生成相應(yīng)的cookie。

   然而純粹的客戶端腳本如JavaScript或者VBScript也可以生成cookie。而cookie 的使用是由瀏覽器按照一定的原則在后臺自動(dòng)發(fā)送給服務(wù)器的。瀏覽器檢查所有存儲(chǔ)的cookie,如果某個(gè)cookie所聲明的作用范圍大于等于將要請求的 資源所在的位置,則把該cookie附在請求資源的HTTP請求頭上發(fā)送給服務(wù)器。

  cookie的內(nèi)容主要包括:名字,值,過期時(shí)間, 路徑和域。路徑與域一起構(gòu)成cookie的作用范圍。若不設(shè)置過期時(shí)間,則表示這個(gè)cookie的生命期為瀏覽器會(huì)話期間,關(guān)閉瀏覽器窗口,cookie 就消失。這種生命期為瀏覽器會(huì)話期的cookie被稱為會(huì)話cookie。會(huì)話cookie一般不存儲(chǔ)在硬盤上而是保存在內(nèi)存里,當(dāng)然這種行為并不是規(guī)范 規(guī)定的。若設(shè)置了過期時(shí)間,瀏覽器就會(huì)把cookie保存到硬盤上,關(guān)閉后再次打開瀏覽器,這些cookie仍然有效直到超過設(shè)定的過期時(shí)間。存儲(chǔ)在硬盤 上的cookie可以在不同的瀏覽器進(jìn)程間共享,比如兩個(gè)IE窗口。而對于保存在內(nèi)存里的cookie,不同的瀏覽器有不同的處理方式。

  session機(jī)制。session機(jī)制是一種服務(wù)器端的機(jī)制,服務(wù)器使用一種類似于散列表的結(jié)構(gòu)(也可能就是使用散列表)來保存信息。

   當(dāng)程序需要為某個(gè)客戶端的請求創(chuàng)建一個(gè)session時(shí),服務(wù)器首先檢查這個(gè)客戶端的請求里是否已包含了一個(gè)session標(biāo)識(稱為session id),如果已包含則說明以前已經(jīng)為此客戶端創(chuàng)建過session,服務(wù)器就按照session id把這個(gè)session檢索出來使用(檢索不到,會(huì)新建一個(gè)),如果客戶端請求不包含session id,則為此客戶端創(chuàng)建一個(gè)session并且生成一個(gè)與此session相關(guān)聯(lián)的session id,session id的值應(yīng)該是一個(gè)既不會(huì)重復(fù),又不容易被找到規(guī)律以仿造的字符串,這個(gè)session id將被在本次響應(yīng)中返回給客戶端保存。保存這個(gè)session id的方式可以采用cookie,這樣在交互過程中瀏覽器可以自動(dòng)的按照規(guī)則把這個(gè)標(biāo)識發(fā)送給服務(wù)器。一般這個(gè)cookie的名字都是類似于 SEEESIONID。但cookie可以被人為的禁止,則必須有其他機(jī)制以便在cookie被禁止時(shí)仍然能夠把session id傳遞回服務(wù)器。經(jīng)常被使用的一種技術(shù)叫做URL重寫,就是把session id直接附加在URL路徑的后面。還有一種技術(shù)叫做表單隱藏字段。就是服務(wù)器會(huì)自動(dòng)修改表單,添加一個(gè)隱藏字段,以便在表單提交時(shí)能夠把session id傳遞回服務(wù)器。比如: <form name="testform" action="/xxx"> <input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764"> <input type="text"> </form> 實(shí)際上這種技術(shù)可以簡單的用對action應(yīng)用URL重寫來代替。

cookie 和session 的區(qū)別:

1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。

2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙(考慮到安全應(yīng)當(dāng)使用session)

3、session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會(huì)比較占用你服務(wù)器的性能(考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE)

4、單個(gè)cookie在客戶端的限制是3K,就是說一個(gè)站點(diǎn)在客戶端存放的COOKIE不能3K。

5、所以個(gè)人建議: ?? 將登陸信息等重要信息存放為SESSION ?? 其他信息如果需要保留,可以放在COOKIE中

Cookie PK Session

一,Session:含義:有始有終的一系列動(dòng)作\消息 1,? 隱含了“面向連接” 和“保持狀態(tài)”兩種含義 2,? 一種用來在客戶端與服務(wù)器之間保持狀態(tài)的解決方案 3,? 也指這種解決方案的存儲(chǔ)結(jié)構(gòu)“把××保存在session里”

二, http 協(xié)議本來是無狀態(tài)的,所以引進(jìn)了cookie和session機(jī)制來保持連接狀態(tài)

cookie與session 機(jī)制之間的區(qū)別與聯(lián)系: cookie機(jī)制采用的是在客戶端保持狀態(tài)的方法 session機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案,由于在服務(wù)器端保? 持狀態(tài)的同時(shí)必須要求客戶端提供一個(gè)標(biāo)識,

三,關(guān)于cookie機(jī)制   Cookie 的使用是由瀏覽器按照一定的原則在后臺自動(dòng)發(fā)送給服務(wù)器的,瀏覽器會(huì)檢查所有存儲(chǔ)的cookie,如果某個(gè)cookie所聲明的作用范圍大于等于將要請求的資源所在的位置,則把該cookie附在請求資源的http請求頭上發(fā)送給服務(wù)器。 存 儲(chǔ)在硬盤上的cookie可以在不同的瀏覽器進(jìn)程間共享,比如兩個(gè)IE窗口。而保存在內(nèi)存里的cookie,不同的瀏覽器有不同的處理方式,對于IE,在 一個(gè)打開的窗口上按CTRL+ N(從文件菜單)打開的窗口可以與原窗口共享cookie,而使用其他方式新開的IE進(jìn)程則不能共享已經(jīng)打開的窗口的內(nèi)存cookie。   Cookie的內(nèi)容包括: 名字,值,過期時(shí)間,路徑和域

四,關(guān)于session的機(jī)制    當(dāng)程序需要為某個(gè)客戶端的請求創(chuàng)建一個(gè)session的時(shí)候,服務(wù)器首先檢查這個(gè)請求是否含了一個(gè)session 標(biāo)識(session id),如果有,則說明以前為該客戶創(chuàng)建了一個(gè)session,服務(wù)器就按照session id把這個(gè)session檢索出來用,一般一個(gè)cookie的名字就是類似于session ID,如果cookie被禁止的時(shí)候(cookie可以被人為的禁止),經(jīng)常使用重寫URL的方式,把session ID附加在URL路徑后面,為了在整個(gè)交互過程中始終保持狀態(tài),就必須在每個(gè)客戶端可能請求的路徑后面都包含這個(gè)session id。   人們 以為:“把瀏覽器關(guān)閉了,session 就小時(shí)了”其實(shí)不對,除非程序通知服務(wù)器刪除一個(gè)session,否則服務(wù)器會(huì)一直保留,而程序一般都是在用戶作log off的時(shí)候發(fā)個(gè)指令去刪除session。人們之所以會(huì)產(chǎn)生這種錯(cuò)覺,是因?yàn)榇蟛糠謘ession會(huì)采用cookie來保存session,而關(guān)閉瀏覽 器后這個(gè)session就消失了,如果服務(wù)器設(shè)置的cookie被保存到硬盤上,或者使用某種手段改寫瀏覽器發(fā)出的http請求頭,把原來的 session id發(fā)送給服務(wù)器,則再次打開瀏覽器,其實(shí)是可以再次找到之前的session id的。所以設(shè)置失效時(shí)間可以起到一定的保護(hù)作用。

五,關(guān)于session的一些問題 1,? session何時(shí)被創(chuàng)建: 不是在客戶端訪問時(shí)就被創(chuàng)建,而是在服務(wù)器端調(diào)用httpservletRequest.getSession(true)時(shí)才被創(chuàng)建。 2,? session何時(shí)被刪除:? A,程序調(diào)用httpSession.invalidate(),B距離上一次收到客戶端發(fā)送的session id時(shí)間間隔超過了session的超時(shí)設(shè)置 C,? 服務(wù)器進(jìn)程被停止(非持久session) 3,? 如何做到關(guān)閉瀏覽器同時(shí)關(guān)閉session:? 嚴(yán)格說做不到,可以讓所有的客戶端頁面使用window.onclose來監(jiān)視瀏覽器的關(guān)閉東西,然后向服務(wù)器發(fā)送一個(gè)請求來刪除session,但是對于瀏覽器崩潰或者強(qiáng)行殺死進(jìn)程時(shí)仍然無能為力。

轉(zhuǎn)載于:https://www.cnblogs.com/sourcebank/archive/2012/12/26/2833417.html

總結(jié)

以上是默认站点為你收集整理的cookie 和session 的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網(wǎng)站內(nèi)容還不錯(cuò),歡迎將默认站点推薦給好友。