一.背景介紹
1.什么是IP地址
互聯(lián)網(wǎng)協(xié)議地址(英語:Internet Protocol Address含友,又譯為網(wǎng)際協(xié)議地址)替裆,縮寫為IP地址(英語:IP Address)校辩,是分配給網(wǎng)絡(luò)上使用網(wǎng)際協(xié)議(英語:Internet Protocol,IP)的設(shè)備的數(shù)字標(biāo)簽。IP地址是唯一的辆童。常見的IP地址分為IPv4與IPv6兩大類宜咒。可以把IP地址類比為一個(gè)電話號(hào)碼把鉴,180.149.132.47即是一個(gè)IP地址故黑。
2.什么是域名
網(wǎng)域名稱(英語:Domain Name),簡(jiǎn)稱域名庭砍、網(wǎng)域场晶,是由一串用點(diǎn)分隔的名字組成的Internet上某一臺(tái)計(jì)算機(jī)或計(jì)算機(jī)組的名稱,用于在數(shù)據(jù)傳輸時(shí)標(biāo)識(shí)計(jì)算機(jī)的電子方位(有時(shí)也指地理位置)怠缸∈幔可以理解為聯(lián)系人名稱,如www.baidu.com就是一個(gè)域名揭北。
3.什么是DNS
網(wǎng)域名稱系統(tǒng)(DNS扳炬,Domain Name System)是因特網(wǎng)的一項(xiàng)核心服務(wù),它作為可以將域名和IP地址相互映射的一個(gè)布式數(shù)據(jù)庫搔体,能夠使人更方便的訪問互聯(lián)網(wǎng)鞠柄,而不用去記住能夠被機(jī)器直接讀取的IP地址數(shù)串。DNS將域名轉(zhuǎn)換為IP地址的過程叫解析嫉柴,
域名必須對(duì)應(yīng)一個(gè)IP地址厌杜,而IP地址不一定只對(duì)應(yīng)一個(gè)域名〖坡荩可以把DNS理解為一個(gè)通訊錄夯尽。
4.什么是cookie
cookie是一小段文本信息,以鍵值對(duì)的形式存儲(chǔ)在客戶端登馒,伴隨著用戶請(qǐng)求和頁面在Web服務(wù)器和瀏覽器之間傳遞匙握。用戶每次訪問站點(diǎn)時(shí),Web應(yīng)用程序都可以讀取Cookie包含的信息陈轿。
5.什么是session
Session指的是服務(wù)器端為客戶端所開辟的存儲(chǔ)空間圈纺,在其中保存的信息就是用于保持狀態(tài)。
用戶打開瀏覽器訪問一起網(wǎng)站麦射,瀏覽器的COOKIE中會(huì)生成sessionID蛾娶,在每次請(qǐng)求時(shí)都會(huì)自動(dòng)帶上sessionID,然后服務(wù)器端根據(jù)sessionID找到對(duì)應(yīng)的session值潜秋。
sessionID就相當(dāng)于是一個(gè)鑰匙蛔琅,服務(wù)器上存session的地方相當(dāng)于一個(gè)柜子,只能拿自己的鑰匙開自己的柜子取自己的東西峻呛。
session一般存儲(chǔ)用戶相關(guān)的的信息罗售,如用戶登錄狀態(tài)辜窑、權(quán)限控制等,其他的信息也可存寨躁。另外就是無論你站點(diǎn)上的用戶是否登錄都會(huì)生成sessionID穆碎。
二.知識(shí)剖析
1.域名的用處
a.比IP地址更容易記憶
b.有利于SEO(搜索引擎優(yōu)化)
2.Cookie的用處
Web應(yīng)用程序是使用HTTP協(xié)議傳輸數(shù)據(jù)的。HTTP協(xié)議是無狀態(tài)的協(xié)議职恳。一旦數(shù)據(jù)交換完畢所禀,客戶端與服務(wù)器端的連接就會(huì)關(guān)閉,再次交換數(shù)據(jù)需要建立新的連接话肖。這就意味著服務(wù)器無法從連接上跟蹤會(huì)話北秽。即用戶A購買了一件商品放入購物車內(nèi)葡幸,當(dāng)再次購買商品時(shí)服務(wù)器已經(jīng)無法判斷該購買行為是屬于用戶A的會(huì)話還是用戶B的會(huì)話了最筒。cookie可以解決此問題。
a.cookie可以跟蹤會(huì)話蔚叨,確認(rèn)訪問者的身份床蜘。
b.cookie可以將用戶登錄憑據(jù)保存在本地,cookie到期之前再訪問該服務(wù)器就不必再登錄了蔑水。
三.常見問題
1.cookie和session的的區(qū)別
a.cookie數(shù)據(jù)存放在客戶的瀏覽器上邢锯,session數(shù)據(jù)放在服務(wù)器上。
b.cookie不是很安全搀别,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙考慮到安全應(yīng)當(dāng)使用session
c.session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上丹擎。當(dāng)訪問增多,會(huì)比較占用你服務(wù)器的性能考慮到減輕服務(wù)器性能方面歇父,應(yīng)當(dāng)使用COOKIE蒂培。
d.單個(gè)cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie榜苫。
所以個(gè)人建議:將登陸信息等重要信息存放為SESSION其他信息如果需要保留护戳,可以放在COOKIE中
2.cookie的有效期
分為會(huì)話cookie和持久cookie
如果不設(shè)置過期時(shí)間,則表示這個(gè)cookie生命周期為瀏覽器會(huì)話期間垂睬,只要關(guān)閉瀏覽器窗口媳荒,cookie就消失了。這種生命期為瀏覽會(huì)話期的cookie被稱為會(huì)話cookie驹饺。會(huì)話cookie一般不保存在硬盤上而是保存在內(nèi)存里钳枕。
如果設(shè)置了過期時(shí)間,瀏覽器就會(huì)把cookie保存到硬盤上赏壹,關(guān)閉后再次打開瀏覽器么伯,這些cookie依然有效直到超過設(shè)定的過期時(shí)間。
存儲(chǔ)在硬盤上的cookie可以在不同的瀏覽器進(jìn)程間共享卡儒,比如兩個(gè)IE窗口田柔。而對(duì)于保存在內(nèi)存的cookie俐巴,不同的瀏覽器有不同的處理方式。
四.解決方案
五.編碼實(shí)戰(zhàn)
在使用JavaScript存取cookie時(shí)硬爆,必須要使用Document對(duì)象的cookie屬性欣舵;一行代碼介紹如何創(chuàng)建和修改一個(gè)cookie:
document.cookie='username=Darren'
以上代碼中'username'表示cookie名稱,'Darren'表示這個(gè)名稱對(duì)應(yīng)的值缀磕。假設(shè)cookie名稱并不存在缘圈,那么就是創(chuàng)建一個(gè)新的cookie;如果存在就是修改了這個(gè)cookie名稱對(duì)應(yīng)的值袜蚕。如果要多次創(chuàng)建cookie糟把,重復(fù)使用這個(gè)方法即可。
六.擴(kuò)展思考
cookie與本地存儲(chǔ)之間的區(qū)別
a.cookie在瀏覽器和服務(wù)器間來回傳遞牲剃。而sessionStorage和localStorage不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器遣疯,僅在本地保存。
b.cookie數(shù)據(jù)還有路徑(path)的概念凿傅,可以限制cookie只屬于某個(gè)路徑下缠犀。存儲(chǔ)大小限制也不同,cookie數(shù)據(jù)不能超過4k聪舒,同時(shí)因?yàn)槊看蝖ttp請(qǐng)求都會(huì)攜帶cookie辨液,所以cookie只適合保存很小的數(shù)據(jù),如會(huì)話標(biāo)識(shí)箱残。sessionStorage和localStorage雖然也有存儲(chǔ)大小的限制滔迈,但比cookie大得多,可以達(dá)到5M或更大被辑。
c.數(shù)據(jù)有效期不同燎悍,sessionStorage:僅在當(dāng)前瀏覽器窗口關(guān)閉前有效,自然也就不可能持久保持敷待;localStorage:始終有效间涵,窗口或?yàn)g覽器關(guān)閉也一直保存,因此用作持久數(shù)據(jù)榜揖;cookie只在設(shè)置的cookie過期時(shí)間之前一直有效勾哩,即使窗口或?yàn)g覽器關(guān)閉。
七.參考文獻(xiàn)
參考一:session到底是什么举哟?
參考三:wiki-Cookie
八.更多討論
IPv4和IPv6的區(qū)別
IPv4思劳,由四組數(shù)字組合而成,由句點(diǎn)隔開(如207.44.214.87)妨猩;IPv6潜叛,由8組4位16進(jìn)制數(shù)表示,用冒號(hào)隔開(如2001:0db8:0000:0042:0000:8a2e:0370:7334)。
IPv6的優(yōu)點(diǎn):
a.更大的地址空間威兜。IPv4中規(guī)定IP地址長(zhǎng)度為32销斟,即有2^32-1個(gè)地址;而IPv6中IP地址的長(zhǎng)度為128椒舵,即有2^128-1個(gè)地址蚂踊。
b.更小的路由表。IPv6能使得路由器能在路由表中用一條記錄(Entry)表示一片子網(wǎng)笔宿,提高了路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的速度犁钟。
c.增強(qiáng)的組播(Multicast)支持以及對(duì)流的支持(Flow-control)。這使得網(wǎng)絡(luò)上的多媒體應(yīng)用有了長(zhǎng)足發(fā)展的機(jī)會(huì)泼橘。
d.加入了對(duì)自動(dòng)配置(Auto-configuration)的支持涝动。使得網(wǎng)絡(luò)(尤其是局域網(wǎng))的管理更加方便和快捷.
e.更高的安全性.在使用IPv6網(wǎng)絡(luò)中用戶可以對(duì)網(wǎng)絡(luò)層的數(shù)據(jù)進(jìn)行加密并對(duì)IP報(bào)文進(jìn)行校驗(yàn)。