cookie與session的區別與聯系


cookie是什么?

    cookie是存在於客戶端(瀏覽器)。

  cookie的使用是由瀏覽器按照一定的原則在后台自動發送給服務器的。瀏覽器檢查所有存儲的cookie,如果某個cookie所聲明的作用范圍大於等於將要請求的資源所在的位置,則把該cookie附在請求資源的HTTP請求頭上發送給服務器。

  cookie的內容主要包括:名字,值,過期時間,路徑和域。其中路徑與域一起構成cookie的作用范圍。若不設置過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器窗口,cookie就消失。如下圖:訪問百度得到的cookie,域都是指向百度的。

  訪問百度之后返回的設置cookie的響應頭

 

session是什么?

  session機制是一種服務器端的機制,服務器使用一種類似於散列表的結構(也可能就是使用散列表)來保存信息。 

session 存放在什么地方?

  存在於服務器端的。

cookie與session如何聯系與通信的

  用戶首次與Web服務器建立連接的時候,服務器會給用戶分發一個 SessionID作為標識。SessionID是一個由24個字符組成的隨機字符串。用戶每次提交頁面,瀏覽器都會把這個SessionID包含在 HTTP頭中提交給Web服務器,這樣Web服務器就能區分當前請求頁面的是哪一個客戶端。這個SessionID就是保存在客戶端的,屬於客戶端Session。其實客戶端Session默認是以cookie的形式來存儲的。

  當然我們客戶端可以禁用cookie,這時候服務器端就拿不到sessionID。

     另外一個辦法:使用url方式存儲sessionID;但是一般都不推薦使用,因為可以偽造url。

session一般存儲在什么地方?

1. php session默認保存在文件中,在php.ini配置文件中:

  session.save_handler = files

  session.save_path=D:\www\tmp  //文件地址

  文件名以 sess_ 為前綴,后跟 SESSION ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的數據即是序列化之后的 SESSION 數據了。

 

2.保存在數據庫中。

  待學習了解后補充

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM