一:存在兩種類型的cookie:
1>會話cookie (session cookie)
不設置過期時間,則表示這個cookie生命周期為瀏覽器會話期間,只要關閉瀏覽器窗口, cookie就消失了。
生命期為瀏覽器會話期。
一般不保存在硬盤上而是保存在內存里。
2>持久性cookie (persistent cookies)
設置了過期時間,瀏覽器就會把cookie保存到硬盤上,關閉后再次打開瀏覽器,這些cookie依然有效直到超過設定的過期時間。
保存在用戶硬盤上面,同一瀏覽器可以獲取。
二: session相關知識
2.1: 什么是session?
Session 是一種保存上下文信息的機制,它是針對每一個用戶的,變量的值保存在服務器端,通過sessionid來區分不同的客戶,session是以cookie或url重 寫為基礎.
2.2: session 的工作原理
client———>1.request————————->server
2. session_start();
|<————-3.reponse(SESSION_ID)<——–|
|————->4.request(SESSION_ID)———>|
5. session_start();
|<————-6.reponse(SESSION_ID)<———|
|————->7. request(SESSION_ID + logout)–>|
8. session_destroy();
|<————-9. reponse(刪除cookie文件)<——-|
- client打開網頁,向server發出請求,client上由於沒有相應的cookie文件存在,在請求中不輸送SESSION_ID
- 服務器在接受到client的請求后,通過執行session_start()函數開始進行session的處理, 首先確認請求中有沒有SESSION_ID,如果沒有的話,發行一個新的SESSION_ID;如果有的話, 則調用那個存有SESSION_ID的文件,並把信息寫入$_SESSION里去,並存入以sess_開頭的文件里。
- 把寫入信息的$_SESSION參數發回給client,client在GET服務器發來的信息后,把這些信息保存在cookie里。
- client把cookie里的SESSION_ID一起寫入header后再次向server發出請求。重復1-3的操作
- client發出登出請求
- 服務器接受請求后,通過執行session_destroy()函數開始刪除session文件處理
- 服務器向client發出刪除保存在client上的cookie文件的命令: setcookie(session_name(), ”, time()-60, ‘/’);
2.3: 注意
- 通常情況下是不能跨窗口使用,但用sessionid保存在持久cookie中,然后在從新窗口中讀取,就可以得到sessionid,實現跨窗口的使用.
- 在大瀏覽量的網站,session並不保險,可能會出現重復的sessionid.
- Session ID不能從硬盤上的Cookie文件獲得,如果想在客戶端獲知自己的Session ID,只能通過Javascrīpt來讀取。
2.4 php使用及設置
Session_start() :開始一個會話或者返回已經存在的會話。在使用Session_start()之前瀏覽器不能有任何輸出,否則會發生以下錯誤。你可以在php.ini里 啟動session.auto_start=1,這樣就無需每次使用session之前都要調用session_start()。
如果在session.auto_start=1,會讓session_save_path (‘./t/’);變的無效。因為后一條語句須放前面。
2.5 增加PHP的Session存儲和處理能力
;session.save_path = “N;MODE;/path” 這項設置提供給我們可以給session存放目錄進行多級散列,其中“N”表示要設置的目錄級數,
“MODE”表示目錄的權限屬性,默認為600
2.6:多服務器共享php的SESSION
1、NFS或者Samba共享的方法,讓各個服務器上存放session文件的磁盤共享,這種方法簡單可行。
2、集中存儲到數據庫中,這是比較多的實現方法,通過php提供的session_set_save_handler()函數來重定義session函數,推薦使用這種方法。
三: cookie知識
什么是 Cookie?其工作原理如何?Cookie 是一小段文本信息,伴隨着用戶請求和頁面在 Web 服務器和瀏覽器之間傳遞。用戶每次訪問站點時,Web 應用程序都可以讀取 Cookie 包含的信息。 Cookie 的基本工作原理如果用戶再次訪問站點上的頁面,當該用戶輸入 URLwww.*****.com時,瀏覽器就會在本地硬盤上查找與該 URL 相關聯的 Cookie。如果該 Cookie 存在,瀏覽器就將它與頁面請求一起發送到您的站點。Cookie 有哪些用途?最根本的用途是:Cookie 能夠幫助 Web 站點保存有關訪問者的信息。更概括地說,Cookie 是一種保持Web 應用程序連續性(即執行“狀態管理”)的方法.使 Web 站點記住您.
