【什麼是cookie】javascript
打開你筆記本上的Documents andSettings文件夾,進去之後,隨便打開一個用戶來看看,是否是有一個文件夾叫「Cookies」,裏面裝着一堆.txt文件?(cookie通常是隱藏文件夾,你能夠啓動windows搜索引擎進行搜索,記得搜索的項目通常所有打勾就可讓電腦幫你找了,同時您能夠在IE瀏覽器點擊屬性攔中,裏面有個打開文件夾,點擊就能夠直截了當的看到cookie相關文件了。)那麼,這個Cookies究竟是個什麼東東呢?java
cookie是指某些網站爲了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據。windows
【工做原理】瀏覽器
cookies是由服務器端生成,發送給user-agent(通常是瀏覽器),瀏覽器會將cookie的key/value保存到某個目錄下的文本文件內安全
下次請求贊成網站時就發送該cookie給服務器(前提是瀏覽器設置爲啓用cookie)。cookie名稱和值能夠由服務器端開發本身定義,對於JSP而言也能夠直接寫入js session id,這樣服務器能夠知道該用戶是否合法用戶以及是否須要從新登錄等,服務器能夠設置或讀取cookies中包含信息,藉此維護用戶跟服務器會話中的狀態。服務器
【主要用途】cookie
服務器能夠利用cookies包含信息的任意性來篩選並常常性維護這些信息,以判斷在HTTP傳輸中的狀態。Cookies最經典的應該是判斷註冊用戶是否已經登陸網站,用戶可能會獲得提示,是否在下一次進入此網站是保留用戶信息以便簡化登陸手段,這些都是cookies的功能。session
【生存週期】學習
Cookie能夠保持登陸信息到用戶下次與服務器的會話,換句話說,下次訪問同一網站時,用戶會發現沒必要輸入用戶名和密碼就已經登陸了(固然,不排除用戶手工刪除Cookie)。而還有一些Cookie在用戶退出會話的時候就被刪除了,這樣能夠有效保護我的隱私。Cookie在生成時就會被指定一個Expire值,這就是Cookie的生存週期,在這個週期內Cookie有效,超出週期Cookie就會被清除。有些頁面將Cookie的生存週期設置爲「0」或負值,這樣在關閉瀏覽器時,就立刻清除Cookie,不會記錄用戶信息,更加安全。網站
【安全性問題】
Cookie的目的是爲用戶帶來方便,爲網站帶來增值,通常狀況下不會形成嚴重的安全威脅。Cookie文件不能做爲代碼執行,也不會傳送病毒,它爲用戶所專有並只能由建立它的服務器來讀取。另外,瀏覽器通常只容許存放300個Cookie,每一個站點最多存放20個Cookie,每一個Cookie的大小限制爲4KB,所以,Cookie不會塞滿硬盤,更不會被用做"拒絕服務"攻擊手段。可是,Cookie做爲用戶身份的替代,其安全性有時決定了整個系統的安全性,Cookie的安全性問題不容忽視。主要的安全威脅有:Cookie欺騙、Cookie截獲。
【Cookie小實例】
要求:用cookie記錄上次登陸的用戶名(1.提交時—記錄用戶名;2.window.onload-讀取用戶名)
一、代碼展現
<script type="text/javascript"> function setCookie(name,value,iDay) { var oDate=new Date(); oDate.setDate(oDate.getDate()+iDay); document.cookie=name+'='+value+';expires='+oDate; } setCookie('userName','pmaxyt',30); setCookie('password','123456',20); window.onload=function() { var oForm=document.getElementById('form1'); var oUser=document.getElementByName('user')[0]; oForm.onsubmit=function() { setCookie('user',oUser.value,14); }; oUser.value=getCookie('user'); } </script>
<pre name="code" class="javascript"><body> <form action="http://www.baidu.com"> 用戶名: <input type="text" name="user"/><br> 密 碼:<input type="password" name="pass"/><br> <input type="submit" value="登陸"/> </form> </body>
二、效果展現
1)第一次打開頁面時:
2)打開設置的cookie:
須要注意的是:打開火狐站點第一個文件夾(沒有名稱)即爲本地cookie存儲。經過expires能夠設置過時時間,以下圖:UserName過時時間爲30天后;password過時時間爲20天以後。
3)再次打開頁面時:
【學習小結】
花了將近一天的時間,研究了一下cookie,原來還能夠本身設置cookie的失效時間。又學到了好多東西,很開心。