COOKIE&&SESSION總結

總結一下cookie和session

cookie

  • 為什么會有cookie
    因為http是一種無狀態的協議,它不對之前發生過得請求和響應狀態進行管理。也就是說,無法根據之前的狀態進行本次的請求處理。假設要求登陸認證的web頁本身無法進行狀態的管理(不記錄已登陸的狀態),那么每次跳轉新頁面不是要再次登陸,就是要在每次請求的報文中附加參數來管理登陸狀態。
    無狀態協議當然是就有它的優點。由于不必保存狀態,自然可以減少服務器的CPU及內存資源的消耗。從另一個側面來說,也正是因為http協議本身是非常簡單的,所以才會被應用到各種場景中。
    保留無狀態協議這個特征的同時又要解決類似的矛盾問題,于是就引入cookie技術。cookie技術通過在請求和響應報文中寫入cookie信息來控制客戶端的狀態。
    cookie會根據從服務器端發送的響應報文內的一個叫做set-cookie的首部字段信息,通知客戶端保存cookie。當下次客戶端再往該服務器發送請求時,客戶端會自動在請求報文中加入cookie值后發送出去。
    服務器端發現客戶端發送過來的cookie后,會去檢查究竟是從哪一個客戶端發送過來的連接請求,然后對比服務器上的記錄,最后得到之前的狀態信息。
  • 長連接


在客戶端執行http請求的之前,會通過TCP協議與服務器建立連接,http響應后,TCP連接不銷毀,以便在下一次http請求的時候直接使用連接,保存時間默認是5秒。


  • cookie語法
    setcookie(名字,值,過期時間,有效目錄,子域名);

  • 設置cookie


    cookie保存的類型只有字符串和數字

  • 刪除cookie

  • cookie支持下標


    Cookie在瀏覽器上沒有數組的概念,只是瀏覽器請求到服務器后,PHP將同名的值轉成數組。

  • 臨時性cookie和永久性cookie
    1、臨時性cookie:關閉瀏覽器后cookie消失
    2、永久性cookie:關閉瀏覽器后cookie不消失,給臨時性cookie添加一個過期時間即可

  • cookie的有效目錄
    cookie默認只能在當前目錄和后代目錄中生效

  • cookie支持子域名
    不同的子域名是獨立的網站。他們之間默認只能訪問自己的cookie.
    默認情況下,cookie變量是區分子域名的。

  • cookie的缺點
    1、安全性低,因為http協議不加密,不驗證報文的完整性,容易被竊聽偽裝篡改。
    2、增加了數據請求的負載,大部分瀏覽器隊cookie的限制是4k
    3、可控性差,客戶端可以禁用cookie

session(會話)


1、session技術一般基于cooke技術,但也可以通過其他方式實現
2、要使用一個會話,必須顯式的開啟一個會話,默認情況下,會話不會自動開啟



3、要自動啟動會話,在php.ini中找到session.auto_start=0這行,把0改為1,并重啟服務器
4、session可以保存除了資源以外的任何數據類型
5、session_id()獲取會話編號,session_name()獲取會話名稱


6、會話重復開啟會提示性報錯

  • 會話的執行過程
    1、使用session_start()函數,PHP從session倉庫中加載已經存儲的會話
    2、當session第一次啟動時候,服務器給客戶分配一個唯一的會話id保存在cookie中
    3、執行PHP的時候,通過會話編號去倉庫中存入或讀取值
    4、當PHP執行結束時,沒有被銷毀的session變量被自動保存到服務器的session倉庫中。

session和cookie的區別

  • 相同點
    1、都是會話技術,有生命周期
    2、都是無狀態性:服務器將請求內容發送到客戶端后,服務器不在記錄客戶端的信息成為無狀態性。

  • 不同點

姓名 Cookie session
存儲地方 瀏覽器中 服務器端
安全性
數據負載 4K 沒有限制
數據類型 字符串和數字 出了資源類型外
可控性

禁用cookie

1、如果禁用了cookie,基于cookie的所有技術默認都無法使用
2、php可以通過配置文件改變




3、PHP自動在URL地址上,表單中加上會話編號


?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 背景在HTTP協議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱為cookie,cooki...
    時芥藍閱讀 2,383評論 1 17
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,373評論 11 349
  • 1. 網絡基礎TCP/IP HTTP基于TCP/IP協議族,HTTP屬于它內部的一個子集。 把互聯網相關聯的協議集...
    yozosann閱讀 3,470評論 0 20
  • 作者:晚晴幽草軒www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饑人谷_Dylan閱讀 1,232評論 0 51
  • 注:本文轉載自前端大全 背景 在HTTP協議的定義中,采用了一種機制來記錄客戶端和服務器端交互的信息,這種機制被稱...
    楠小忎閱讀 689評論 0 0