域名,COOKIE是什么?有什么用處?COOKIE 和SESSION的區(qū)別?COOKIE的有效期

1.背景介紹

IP地址是Internet主機(jī)作為路由尋址用的數(shù)字體標(biāo)識(shí),人不容易記憶。

因而產(chǎn)生了域名這一種字符型標(biāo)識(shí)。cookie中文名稱為“小型文本文件”,

某些網(wǎng)站為了辨別用戶身份而儲(chǔ)存在用戶本地終端(Client Side)上的數(shù)據(jù)(通常經(jīng)過(guò)加密)。

定義于RFC2109。是網(wǎng)景公司的前雇員盧·蒙特利在1993年3月的發(fā)明。

2.知識(shí)剖析

域名在因特網(wǎng)上用來(lái)代替IP地址,因?yàn)镮P地址沒(méi)有實(shí)際含義,人們不容易記住,

所以用有含義的英文字母來(lái)代替。在網(wǎng)絡(luò)上,專門有DNS(域名服務(wù)器)

來(lái)進(jìn)行域名與IP的相互轉(zhuǎn)換,人們輸入域名,在DNS上轉(zhuǎn)換為IP,

才能找到相應(yīng)的服務(wù)器,打開相應(yīng)的網(wǎng)頁(yè)。

cookie的用途

因?yàn)镠TTP協(xié)議是無(wú)狀態(tài)的,即服務(wù)器不知道用戶上一次做了什么,這嚴(yán)重阻礙了交互式Web應(yīng)用程序的實(shí)現(xiàn)。在典型的網(wǎng)上購(gòu)物場(chǎng)景中,用戶瀏覽了幾個(gè)頁(yè)面,買了一盒餅干和兩飲料。最后結(jié)帳時(shí),由于HTTP的無(wú)狀態(tài)性,不通過(guò)額外的手段,服務(wù)器并不知道用戶到底買了什么。 所以Cookie就是用來(lái)繞開HTTP的無(wú)狀態(tài)性的“額外手段”之一。服務(wù)器可以設(shè)置或讀取Cookies中包含信息,借此維護(hù)用戶跟服務(wù)器會(huì)話中的狀態(tài)。在剛才的購(gòu)物場(chǎng)景中,當(dāng)用戶選購(gòu)了第一項(xiàng)商品,服務(wù)器在向用戶發(fā)送網(wǎng)頁(yè)的同時(shí),還發(fā)送了一段Cookie,記錄著那項(xiàng)商品的信息。當(dāng)用戶訪問(wèn)另一個(gè)頁(yè)面,瀏覽器會(huì)把Cookie發(fā)送給服務(wù)器,于是服務(wù)器知道他之前選購(gòu)了什么。用戶繼續(xù)選購(gòu)飲料,服務(wù)器就在原來(lái)那段Cookie里追加新的商品信息。結(jié)帳時(shí),服務(wù)器讀取發(fā)送來(lái)的Cookie就行了。

3.常見問(wèn)題

COOKIE的有效期

COOKIE 和SESSION的區(qū)別

4.解決方案

COOKIE的有效期

cookie 大致可分為兩種狀態(tài)

臨時(shí)性質(zhì)的cookie。當(dāng)前使用的過(guò)程中網(wǎng)站會(huì)儲(chǔ)存一些你的個(gè)人信息,當(dāng)瀏覽器關(guān)閉后這些信息也會(huì)從計(jì)算機(jī)中刪除。

設(shè)置失效時(shí)間的cookie。就算瀏覽器關(guān)閉了,這些信息業(yè)依然會(huì)在計(jì)算機(jī)中。如 登錄名稱和密碼,這樣無(wú)須在每次到特定站點(diǎn)時(shí)都進(jìn)行登錄。這種cookie 可在計(jì)算機(jī)中保留幾天、幾個(gè)月甚至幾年。

session的作用和cookie差不多,也是用來(lái)解決Http協(xié)議不能維持狀態(tài)的問(wèn)題。區(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)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能

考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE。

4、單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie。

5、所以個(gè)人建議:

將登陸信息等重要信息存放為SESSION

其他信息如果需要保留,可以放在COOKIE中

5.編碼實(shí)戰(zhàn)

在默認(rèn)的情況下,cookie 會(huì)在瀏覽器關(guān)閉的時(shí)候自動(dòng)清除,但是我們可以通過(guò)expires來(lái)設(shè)置 cookie 的有效期。語(yǔ)法如下:

document.cookie = "name=value;expires=date"

上面代碼中的date值為GMT(格林威治時(shí)間)格式的日期型字符串,生成方式如下:

var _date = new Date();

_date.setDate(_date.getDate()+30);

_date.toGMTString();

上面三行代碼分解為幾步來(lái)看:

通過(guò)new生成一個(gè)Date的實(shí)例,得到當(dāng)前的時(shí)間;

getDate()方法得到當(dāng)前本地月份中的某一天,接著加上30就是我希望這個(gè)cookie能過(guò)在本地保存30天;

接著通過(guò)setDate()方法來(lái)設(shè)置時(shí)間;

最后 用toGMTString()方法把Date對(duì)象轉(zhuǎn)換為字符串,并返回結(jié)果

6.擴(kuò)展思考

什么是域名解析服務(wù)(DNS)

7.參考文獻(xiàn)

參考一:Darren

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容