網(wǎng)絡傳輸?shù)闹R
一、Cache
1田炭、瀏覽器緩存
瀏覽器(IE教硫,Chrome叨吮,F(xiàn)irefox)都有緩存設置選項瞬矩,它可以將你瀏覽過的網(wǎng)頁全部保存到你本地計算機的硬盤中。
2景用、代理緩存
代理緩存既不屬于客戶端,也不屬于服務器端割粮,而是利用網(wǎng)絡路由請求信息:
(1)用戶手動設置的代理媚污。
(2)使用網(wǎng)頁代理舀瓢,網(wǎng)頁代理將你的URL請求通過它潛在的網(wǎng)絡定向到代理京髓,用戶無需手動配置商架。
3、網(wǎng)關緩存
(1)強緩存
緩存策略:直接從本地緩存中取資源甸私,不會和服務器通信。
(2)協(xié)商緩存
緩存策略:通過服務器來告知是否能用本地緩存诬烹。先和服務器通信弃鸦,如果返回可以使用本地緩存的指示,再從本都緩存中然8瘛颜说;如果不可以使用本地緩存汰聋,就會返回最新的資源。
二玄妈、Cookie
1髓梅、cookie的使用原理:
(1)用戶會提供包括用戶名在內的一些用戶信息并且將其提交至服務器。
(2)服務端想客戶端回傳響應的數(shù)據(jù)的同時枯饿,也會發(fā)回用戶的信息(Cookie S-001)。
(3)當客戶端接收到來自服務器的響應之后搔扁,瀏覽器會將Cookie S-001存放在一個統(tǒng)一的位置袱巨。
(4)客戶端再向服務器發(fā)送請求的時候,會把Cookie S-001再次發(fā)回至服務器愉老。
2剖效、獲取Cookie的途徑
(1)使用瀏覽器開發(fā)者工具或者抓包工具獲取。
(2)從本地文件中獲取
IE瀏覽器Cookie數(shù)據(jù)位于:%APPDATA%\Microsoft\Windows\Cookies\目錄中的xxx.txt文件咒林。
Firefox的Cookie數(shù)據(jù)位于:%APPDATA%\Mozilla\Firefox\Profiles\目錄中的xxx.default目錄名為cookies.sqlite的文件爷光。
Chrome的Cookie數(shù)據(jù)位于:%APPDATA%\Google\Chrome\User Data\Default\目錄中名為cookies的文件。
(3)通過前端技術獲取
在瀏覽器地址欄輸入? Javascript:alert (document. cookie)欢瞪,顯示本網(wǎng)站的所有的Cookie內容徐裸。
三、Session
1重贺、Session的傳輸步驟:
(1)服務器端程序運行的過程中創(chuàng)建Session并且為該Session生成唯一的Session ID回懦。
? ? 這個Session ID在隨后的請求中會被用來重新獲得已經(jīng)創(chuàng)建的Session 次企。在Session 被創(chuàng)建之后,就可以調用Session 相關的方法向Session 中增加內容贫贝,這些內容只會保存在服務器中蛉谜。
(2)服務器將Session ID發(fā)到客戶端。
(3)當客戶端再次發(fā)送請求的時候客燕,會將這個Session ID帶上狰贯。
(4)服務器接收到請求之后就會依據(jù)Session ID找到相應的Session,完成請求相應涵紊。
2、Session 的傳輸媒介
(1)通過Cookie傳輸颤练。
(2)URL地址重寫驱负。
四、Session與Cookie的區(qū)別
1跃脊、存儲位置不同
Cookie的數(shù)據(jù)信息存放在客戶端瀏覽器上。
Session 的數(shù)據(jù)信息存放在服務器上
2器瘪、存儲容量不同
單個Cookie保存的數(shù)據(jù)<=4KB绘雁,一個站點最多保存20個Cookie。
對于Session 并沒有上限衰齐,但出于對服務器性能考慮继阻,Session 內不要存放過多的東西废酷,并且設置Session 刪除機制抹缕。
3、存取方式不同
Cookie中只能保管ASCII字符串卓研,需要通過編碼的方式獲取Unicode字符或者二進制數(shù)據(jù)。運用Cookie難以實現(xiàn)存儲略微負責的信息寥闪。
Session 中能夠存取任何類型的數(shù)據(jù)磨淌,包括且不限于String、Integer缚柳、List搪锣、Map秋忙。
4、隱私策略的不同
Cookie對客戶端是可見的灰追,別有用心的人可以分析放在本地的Cookie并進行Cookie欺騙旁壮,所以他是不安全的。
Session 存儲在服務器上,對客戶端透明桐猬,不存在敏感信息泄露的風險。
5免胃、有效期不同
開發(fā)可以通過設置Cookie的屬性惫撰,達到使Cookie 長期有效的結果。
由于Session 依賴于名為JESSIONID的Cookie厨钻,而Cookie?JESSIONID的過期時間默認為-1,只要關閉窗口該Session 就會失效诗充。
6、服務器壓力不同
Cookie保存在客戶端碟绑,不占用服務器資源茎匠。
Session保存在服務器端,每個用戶會產生一個Session 诵冒。若并發(fā)訪問的話會產生很多Session 造烁,耗費大量內存否过。
7惭蟋、跨域支持上的不同
Cookie支持跨域名訪問告组。
Session不支持跨域名訪問。