999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Cookie和Session機(jī)制的初步探討

2008-12-31 00:00:00張瑞興張翠梅
考試周刊 2008年36期

摘要: 在網(wǎng)絡(luò)技術(shù)迅猛發(fā)展的今天,人性化的網(wǎng)站建設(shè)越來(lái)越得到設(shè)計(jì)開發(fā)人員的重視,Cookie和Session機(jī)制的使用,可以大大提高網(wǎng)站運(yùn)行的效率。但很多用戶往往分不清Cookie和Session機(jī)制的區(qū)別和聯(lián)系,本文就這兩機(jī)制進(jìn)行初步探討,對(duì)Cookie和Session機(jī)制的概念、原理和用途做簡(jiǎn)要的區(qū)別。

關(guān)鍵詞: Cookie Session客戶請(qǐng)求 變量傳遞

1.Cookie概念、用途及工作原理

Cookie技術(shù)最先被Netscape公司引入到Navigator瀏覽器中。之后,WWW協(xié)會(huì)支持并采納了Cookie標(biāo)準(zhǔn),微軟也在Internet Explorer瀏覽器中使用了Cookie。現(xiàn)在,絕大多數(shù)瀏覽器都支持Cookie,或者至少兼容Cookie技術(shù)的使用。按照Netscape官方文檔中的定義,Cookie是指在HTTP協(xié)議下,服務(wù)器或腳本可以維護(hù)客戶端計(jì)算機(jī)上信息的一種方式。通俗地說(shuō),Cookie是一種能夠讓網(wǎng)站W(wǎng)eb服務(wù)器把少量數(shù)據(jù)儲(chǔ)存到客戶端的硬盤或內(nèi)存里,或是從客戶端的硬盤里讀取數(shù)據(jù)的一種技術(shù)。

Cookie最根本的用途是能夠幫助Web站點(diǎn)保存有關(guān)訪問(wèn)者的信息。更概括地說(shuō),Cookie是一種保持Web應(yīng)用程序連續(xù)性(即執(zhí)行“狀態(tài)管理”)的方法。瀏覽器和Web服務(wù)器除了在短暫的實(shí)際信息交換階段以外總是斷開的,而用戶向Web服務(wù)器發(fā)送的每個(gè)請(qǐng)求都是單獨(dú)處理的,與其他所有請(qǐng)求無(wú)關(guān)。然而在大多數(shù)情況下,都有必要讓W(xué)eb服務(wù)器在您請(qǐng)求某個(gè)頁(yè)面時(shí)對(duì)您進(jìn)行識(shí)別。Cookie的作用就類似于名片,它提供了相關(guān)的標(biāo)識(shí)信息,可以幫助應(yīng)用程序確定如何繼續(xù)執(zhí)行。

Cookie應(yīng)用的幾條限制。大多數(shù)瀏覽器支持最多可達(dá)4096字節(jié)的Cookie,如果要將為數(shù)不多的幾個(gè)值保存到用戶計(jì)算機(jī)上,這一空間已經(jīng)足夠大,但你不能用一個(gè)Cookie來(lái)保存數(shù)據(jù)集或其他大量數(shù)據(jù)。在實(shí)際應(yīng)用中,你可能并不希望在Cookie中保存大量的用戶信息,而只希望保存用戶編號(hào)或其他標(biāo)識(shí)符。之后,當(dāng)用戶再次訪問(wèn)你的站點(diǎn)時(shí),你就可以使用該用戶ID在數(shù)據(jù)庫(kù)中查找用戶的詳細(xì)信息。瀏覽器還限制了在用戶計(jì)算機(jī)上保存的Cookie數(shù)。大多數(shù)瀏覽器只允許每個(gè)站點(diǎn)保存20個(gè)Cookie。如果試圖保存更多的Cookie,則最先保存的Cookie就會(huì)被刪除。還有些瀏覽器會(huì)對(duì)來(lái)自所有站點(diǎn)的Cookie總數(shù)做出限制,這個(gè)限制通常為300個(gè)。最常遇到的Cookie限制是:用戶可以設(shè)置自己的瀏覽器,拒絕接受Cookie。

2.Session概念、用途及工作原理

Session,中文經(jīng)常翻譯為會(huì)話,其本來(lái)的含義是指有始有終的一系列動(dòng)作/消息。Session是一種跟蹤和識(shí)別用戶的機(jī)制,最早出現(xiàn)在動(dòng)態(tài)腳本語(yǔ)言ASP中,在PHP中的使用是從PHP4開始增加的一項(xiàng)功能。Session是指用戶在瀏覽某個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站第一個(gè)網(wǎng)頁(yè)開始到瀏覽器關(guān)閉所經(jīng)歷的時(shí)間段。當(dāng)它在服務(wù)端完成響應(yīng)后,服務(wù)器就失去與客戶端瀏覽器的聯(lián)系。從這點(diǎn)而言,Session是一個(gè)特定的時(shí)間概念,它能夠存儲(chǔ)當(dāng)前瀏覽器窗口打開的任何窗口的用戶信息。

當(dāng)程序需要為某個(gè)客戶端的請(qǐng)求創(chuàng)建一個(gè)Session的時(shí)候,服務(wù)器首先檢查這個(gè)客戶端的請(qǐng)求里是否已包含了一個(gè)Session標(biāo)識(shí),稱為Session ID。如果已包含一個(gè)Session ID則說(shuō)明以前已經(jīng)為此客戶端創(chuàng)建過(guò)Session,服務(wù)器就按照Session ID把這個(gè)Session檢索出來(lái)使用(如果檢索不到,可能會(huì)新建一個(gè));如果客戶端請(qǐng)求不包含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,這樣在交互過(guò)程中瀏覽器可以自動(dòng)地按照規(guī)則把這個(gè)標(biāo)識(shí)發(fā)揮給服務(wù)器。一般這個(gè)Cookie的名字都是類似于SEEESION ID。

恰恰是由于關(guān)閉瀏覽器不會(huì)導(dǎo)致Session被刪除,迫使服務(wù)器為Session設(shè)置了一個(gè)失效時(shí)間,當(dāng)距離客戶端上一次使用Session的時(shí)間超過(guò)這個(gè)失效時(shí)間時(shí),服務(wù)器就可以認(rèn)為客戶端已經(jīng)停止了活動(dòng),才會(huì)把Session刪除以節(jié)省存儲(chǔ)空間。

3.Cookie和Session的區(qū)別與聯(lián)系

Cookie是客戶端的存儲(chǔ)空間,由瀏覽器來(lái)維持。具體來(lái)說(shuō),Cookie機(jī)制采用的是在客戶端保持狀態(tài)的方案,而Session機(jī)制采用的是在服務(wù)器端保持狀態(tài)的方案。同時(shí)我們也看到,由于在服務(wù)器端保持狀態(tài)的方案在客戶端也需要保存一個(gè)標(biāo)識(shí),所以Session機(jī)制有時(shí)需要借助于Cookie機(jī)制來(lái)達(dá)到保存標(biāo)識(shí)的目的,但也有其他選擇,比如說(shuō)重寫URL和隱藏表單域。

對(duì)于Cookie來(lái)說(shuō),假設(shè)我們要驗(yàn)證用戶是否登陸,就必須在Cookie中保存用戶名和密碼(可能是md5加密后字符串),并在每次請(qǐng)求頁(yè)面的時(shí)候進(jìn)行驗(yàn)證。如果用戶名和密碼存儲(chǔ)在數(shù)據(jù)庫(kù),每次都要執(zhí)行一次數(shù)據(jù)庫(kù)查詢,將給數(shù)據(jù)庫(kù)造成多余的負(fù)擔(dān)。因?yàn)槲覀儾⒉荒苤蛔鲆淮悟?yàn)證。因?yàn)榭蛻舳薈ookie中的信息是有可能被修改的。而Session就不同了,Session是存儲(chǔ)在服務(wù)器端的,遠(yuǎn)程用戶沒辦法修改Session文件的內(nèi)容,因此我們可以單純存儲(chǔ)一個(gè)$admin變量來(lái)判斷是否登陸,首次驗(yàn)證通過(guò)后設(shè)置$admin值為true,以后判斷該值是否為true,假如不是,轉(zhuǎn)入登陸界面,這樣就可以減少很多數(shù)據(jù)庫(kù)操作了。

Session是由應(yīng)用服務(wù)器維持的一個(gè)服務(wù)器端的存儲(chǔ)空間,用戶在連接服務(wù)器時(shí),會(huì)由服務(wù)器生成一個(gè)唯一的Session ID,用該Session ID為標(biāo)識(shí)符來(lái)存取服務(wù)器端的Session存儲(chǔ)空間。而Session ID這一數(shù)據(jù)則是保存到客戶端,用Cookie保存的,用戶提交頁(yè)面時(shí),會(huì)將這一Session ID提交到服務(wù)器端,來(lái)存取Session數(shù)據(jù)。這一過(guò)程,是不用開發(fā)人員干預(yù)的。所以一旦客戶端禁用Cookie,那么Session也會(huì)失效。

4.Session和Cookie變量的創(chuàng)建

下面,我們以php代碼實(shí)例來(lái)簡(jiǎn)單了解一下Session和Cookie變量的創(chuàng)建,其使用方法我們就一目了然了。

<?php

Session_start();//開始一個(gè)會(huì)話,如果要使用Session程序最前面一定要加上這句

$_Session[’user_ID’]=’123’;//給一個(gè)Session變量賦值,如果該變量不存在即創(chuàng)建

echo$_Session[’user_ID’];//訪問(wèn)Session變量

$_Session=array();//清空所有Session變量

Session_destroy();//清除會(huì)話ID

//Sessionend

//Cookie start

setCookie(’user_ID’,123);//創(chuàng)建一個(gè)Cookie變量user_ID=123

echo $_Cookie[’user_ID’];//訪問(wèn)Cookie變量和變通變量一樣

setCookie(’user_ID’,0,time()-1);//刪除Cookie變量

//codie end該代碼不可運(yùn)行,只是將所有使用方法在這里列出,實(shí)際應(yīng)該不同功能在不同頁(yè)面使用。

?>

5.結(jié)語(yǔ)

具體來(lái)說(shuō),Cookie機(jī)制采用的是在客戶端保持狀態(tài)的方案。它是在用戶端的會(huì)話狀態(tài)的存貯機(jī)制,他需要用戶打開客戶端的Cookie支持。Cookie的作用就是為了解決HTTP協(xié)議無(wú)狀態(tài)的缺陷所作的努力。而Session機(jī)制采用的是一種在客戶端與服務(wù)器之間保持狀態(tài)的解決方案。同時(shí)我們也看到,由于采用服務(wù)器端保持狀態(tài)的方案在客戶端也需要保存一個(gè)標(biāo)識(shí),所以Session機(jī)制可能需要借助于Cookie機(jī)制來(lái)達(dá)到保存標(biāo)識(shí)的目的。而Session提供了方便管理全局變量的方式。Session是針對(duì)每一個(gè)用戶的,變量的值保存在服務(wù)器上,用一個(gè)Session ID來(lái)區(qū)分是哪個(gè)用戶Session變量,這個(gè)值是通過(guò)用戶的瀏覽器在訪問(wèn)的時(shí)候返回給服務(wù)器,當(dāng)客戶禁用Cookie時(shí),這個(gè)值也可能設(shè)置為由get來(lái)返回給服務(wù)器。就安全性來(lái)說(shuō):當(dāng)你訪問(wèn)一個(gè)使用Session的站點(diǎn),同時(shí)在本地建立一個(gè)Cookie,建議在服務(wù)器端的Session機(jī)制更安全些。因?yàn)樗粫?huì)任意讀取客戶存儲(chǔ)的信息。顯然,Cookie和Session機(jī)制各有優(yōu)點(diǎn),我們使用它們的時(shí)候,要根據(jù)不同的需要采用不同的機(jī)制。

參考文獻(xiàn):

[1]胡忠望,劉衛(wèi)東.“Cookie應(yīng)用與個(gè)人信息安全研究”.計(jì)算機(jī)應(yīng)用與軟件,2007.3,第24卷,第3期.

[2]侯金彪,胡凱,王文博.“php中Session變量的應(yīng)用研究”.科技信息,2006.

[3][美]R.Allen Wyke.Michael J.Walker著.Robert Cox信達(dá)工作室譯.php開發(fā)人員手冊(cè)[M].北京:人民郵電出版社,2001:207-210.

[4]鄭江波.“PHP中Session機(jī)制的研究與應(yīng)用”.荊門職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007.3,第22卷,第3期.

主站蜘蛛池模板: 国产乱子伦精品视频| 欧美国产日韩在线播放| 国产亚洲精品自在线| 免费不卡视频| 国产乱子伦精品视频| 欧美不卡视频一区发布| 青青操国产视频| 日本手机在线视频| 国产精品3p视频| 国产小视频a在线观看| 天堂av高清一区二区三区| 青青操国产视频| 好吊日免费视频| 亚洲一区二区三区在线视频| 欧美日韩亚洲国产| 无码综合天天久久综合网| 免费a级毛片视频| 一本大道香蕉高清久久| 国产精品无码一二三视频| 亚洲欧美综合另类图片小说区| 激情五月婷婷综合网| 国产欧美视频在线| 欧美成人午夜在线全部免费| 看国产一级毛片| 免费一级无码在线网站| 国产高清在线精品一区二区三区 | 国产h视频免费观看| 久久这里只有精品2| 天天摸夜夜操| 久久婷婷六月| 国产乱人伦AV在线A| 91在线视频福利| 天天干天天色综合网| 国产剧情一区二区| 色妺妺在线视频喷水| V一区无码内射国产| 国产午夜精品一区二区三| 久久久国产精品免费视频| 欧洲av毛片| 熟妇丰满人妻| 欧美日韩91| 激情综合网激情综合| 国产福利免费在线观看| 一级爆乳无码av| 国产精品私拍在线爆乳| 欧美精品一二三区| 亚洲人成网址| 亚洲精品国产首次亮相| 国产三级成人| 性色一区| 九色最新网址| 国产国模一区二区三区四区| 久久国产热| 午夜人性色福利无码视频在线观看 | 91久久精品日日躁夜夜躁欧美| 91成人在线观看视频| 九色综合伊人久久富二代| 日韩国产一区二区三区无码| 小说 亚洲 无码 精品| 国产日韩精品欧美一区喷| 久久www视频| 亚洲日韩精品无码专区| 在线综合亚洲欧美网站| 国产成人综合亚洲网址| 国产精品尹人在线观看| 91精品人妻一区二区| 国产亚洲日韩av在线| 制服丝袜一区| 国内精品手机在线观看视频| 久久国产精品无码hdav| 国产嫩草在线观看| 亚洲伊人天堂| 亚洲欧洲天堂色AV| 72种姿势欧美久久久大黄蕉| 强奷白丝美女在线观看| 日韩欧美国产三级| 久久伊人操| AV天堂资源福利在线观看| 国产精品开放后亚洲| 亚洲美女高潮久久久久久久| 91视频精品| 国产精品自拍露脸视频|