日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(干货满满!)session和cookie作用原理,区别(史上最详细)

發布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (干货满满!)session和cookie作用原理,区别(史上最详细) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Cookie概念

在瀏覽某些 網站 時,這些網站會把 一些數據存在 客戶端 , 用于使用網站 等跟蹤用戶,實現用戶自定義 功能.

是否設置過期時間:

  • 如果不設置 過期時間,則表示這個 Cookie生命周期為 瀏覽器會話期間 , 只要關閉瀏覽器,cookie就消失了.

  • 這個生命期為瀏覽會話期的cookie,就是會話Cookie;

存儲:

  • 一般保存在 內存,不在硬盤;

  • 如果設置了過期時間, 瀏覽器會把cookie保存在硬盤上,關閉再打開瀏覽器, 這些cookie 依然有效直到 超過的設置過期時間;

  • 存儲在硬盤上的Cookie可以在不同的瀏覽器進程間共享,比如兩個IE窗口。

原理:

如果瀏覽器使用的是 cookie,那么所有的數據都保存在瀏覽器端,

比如你登錄以后,服務器設置了 cookie用戶名(username),那么,當你再次請求服務器的時候,瀏覽器會將username一塊發送給服務器,這些變量有一定的特殊標記。服務器會解釋為 cookie變量。

所以只要不關閉瀏覽器,那么 cookie變量便一直是有效的,所以能夠保證長時間不掉線。

如果設置了的有效時間,那么它會將 cookie保存在客戶端的硬盤上,下次再訪問該網站的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然后發送給服務器。



二、Session的概念

Session 是存放在服務器端的類似于HashTable結構(每一種web開發技術的實現可能不一樣,下文直接稱之為HashTable)來存放用戶數據;

作用:實現網頁之間數據傳遞,是一個存儲在服務器端的對象集合。


原理:系統在創建Session時將為其分配一個長長的字符串標識,以實現對Session進行管理與跟蹤。

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


是否已經創建過session:

當程序需要為某個客戶端的請求創建一個session時,服務器首先檢查這個客戶端的請求里是否已包含了一個session標識(稱為session id),

如果已包含則說明以前已經為此客戶端創建過session,服務器就按照session id把這個session檢索出來…使用(檢索不到,會新建一個),

如果客戶端請求不包含session id,則為此客戶端創建一個session并且生成一個與此session相關聯的session id,

session id的值應該是一個既不會重復,又不容易被找到規律以仿造的字符串,這個session id將被在本次響應中返回給客戶端保存。

(總結: 創建一個session時,服務器看這個客戶端 是否包含session標識, 是的話按照session id把session檢索出來,否則就得 新建一個.)


Session ID的保存方法:

使用Cookie來保存,這是最常見的方法。

服務器通過設置Cookie的方式將Session ID發送到瀏覽器。

如果我們不設置這個過期時間,那么這個Cookie將不存放在硬盤上,當瀏覽器關閉的時候,Cookie就消失了,這個Session ID就丟失了。

如果我們設置這個時間為若干天之后,那么這個Cookie會保存在客戶端硬盤中,即使瀏覽器關閉,這個值仍然存在,下次訪問相應網站時,同 樣會發送到服務器上。


cookie 和session 的區別

  • cookie數據存放在客戶的瀏覽器上,session數據放在服務器上.
    ?
    簡單的說,當你登錄一個網站的時候,如果web服務器端使用的是session,那么所有的數據都保存在服務器上面,
    ?
    客戶端每次請求服務器的時候會發送 當前會話的session_id,服務器根據當前session_id判斷相應的用戶數據標志,以確定用戶是否登錄,或具有某種權限。
    ?
    session_id是服務 器和客戶端鏈接時候隨機分配的,使用Cookie保存

  • cookie不是很安全

  • session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,此時應考慮反序列化——>傳送門


  • 總結

    以上是生活随笔為你收集整理的(干货满满!)session和cookie作用原理,区别(史上最详细)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。