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.保存在數據庫中。
待學習了解后補充