導航:首頁 > 編程語言 > phpcookiessession

phpcookiessession

發布時間:2024-07-16 06:32:35

⑴ PHP中cookie和session的區別實例分析

Session是由應用伺服器維持的一個伺服器端的存儲空間,用戶在連接伺服器時,會由伺服器生成一個唯一的SessionID,用該SessionID
為標識符來存取伺服器端的Session存儲空間。而SessionID這一數據則是保存到客戶端,用Cookie保存的,用戶提交頁面時,會將這一
SessionID提交到伺服器端,來存取Session數據。這一過程,是不用開發人員干預的。所以一旦客戶端禁用Cookie,那麼Session也會失效。

伺服器也可以通過URL重寫的方式來傳遞SessionID的值,因此不是完全依賴Cookie。如果客戶端Cookie禁用,則伺服器可以自動通過重寫URL的方式來保存Session的值,並且這個過程對程序員透明。

可以試一下,即使不寫Cookie,在使用request.getCookies();取出的Cookie數組的長度也是1,而這個Cookie的名字就是JSESSIONID,還有一個很長的二進制的字元串,是SessionID的值。

大家都知道,http是無狀態的協議,客戶每次讀取web頁面時,伺服器都打開新的會話,而且伺服器也不會自動維護客戶的上下文信息,那麼要怎麼才能實現
網上商店中的購物車呢,session就是一種保存上下文信息的機制,它是針對每一個用戶的,變數的值保存在伺服器端,通過SessionID來區分不同
的客戶,session是以cookie或URL重寫為基礎的,默認使用cookie來實現,系統會創造一個名為JSESSIONID的輸出
cookie,我們叫做session
cookie,以區別persistent cookies,也就是我們通常所說的cookie,注意session
cookie是存儲於瀏覽器內存中的,並不是寫到硬碟上的,這也就是我們剛才看到的JSESSIONID,我們通常情是看不到JSESSIONID的,但
是當我們把瀏覽器的cookie禁止後,web伺服器會採用URL重寫的方式傳遞Sessionid,我們就可以在地址欄看到
sessionid=KWJHUG6JJM65HS2K6之類的字元串。

明白了原理,我們就可以很容易的分辨出persistent cookies和session
cookie的區別了,網上那些關於兩者安全性的討論也就一目瞭然了,session
cookie針對某一次會話而言,會話結束session cookie也就隨著消失了,而persistent
cookie只是存在於客戶端硬碟上的一段文本(通常是加密的),而且可能會遭到cookie欺騙以及針對cookie的跨站腳本攻擊,自然不如session
cookie安全了。

通常session
cookie是不能跨窗口使用的,當你新開了一個瀏覽器窗口進入相同頁面時,系統會賦予你一個新的sessionid,這樣我們信息共享的目的就達不到了,此時我們可以先把sessionid保存在persistent
cookie中,然後在新窗口中讀出來,就可以得到上一個窗口SessionID了,這樣通過session
cookie和persistent cookie的結合我們就實現了跨窗口的session tracking(會話跟蹤)。

在一些web開發的書中,往往只是簡單的把Session和cookie作為兩種並列的http傳送信息的方式,session
cookies位於伺服器端,persistent
cookie位於客戶端,可是session又是以cookie為基礎的,明白的兩者之間的聯系和區別,我們就不難選擇合適的技術來開發web
service了。

實例附上出處鏈接:http://www.jb51.net/article/54436.htm

閱讀全文

與phpcookiessession相關的資料

熱點內容
邁騰改裝大屏怎麼下載app 瀏覽:812
福建助學app個人信息怎麼修改 瀏覽:677
python是編譯型高級語言 瀏覽:873
轉轉app上面手機怎麼放怎麼賣 瀏覽:606
編譯器將源代碼轉換為目標代碼 瀏覽:885
程序員搞笑小品 瀏覽:543
51單片機波特率115200 瀏覽:891
服從命令圖片動畫片 瀏覽:192
Web與雲伺服器的區別 瀏覽:996
linux沒有rz 瀏覽:305
理正勘察加密鎖 瀏覽:698
安卓程序結構是什麼 瀏覽:297
活塞式壓縮機檢修規程 瀏覽:763
伺服器未響怎麼辦 瀏覽:698
超短指標公式源碼 瀏覽:708
什麼是opc的客戶端和伺服器 瀏覽:33
ug編程指令軟體自學網 瀏覽:290
android板子 瀏覽:751
單機版ERP系統怎麼用伺服器 瀏覽:472
編程序實現兩個變數值的交換 瀏覽:501