Gin框架的Cookie與session案例

2022-10-10 19:51:16 字數 3280 閱讀 6874

gin框架的cookie與session案例

一.cookie與session概述

1>.cookie和session的產生背景

由於http協議是無狀態的,伺服器無法確定這次請求和上次請求是否來自同乙個客戶端。就給客戶端們頒發乙個通行證吧,每人乙個,無論誰訪問都必須攜帶自己通行證。這樣伺服器就能從通行證上確認客戶身份了。這就是cookie的工作原理。

利用session和cookie可以讓伺服器直到不同的請求是否來自同乙個客戶端。

2>.cookie與session的區別

什麼是cookie:

cookie意為「甜餅」,是由w3c組織提出,最早由netscape社群發展的一種機制。目前cookie已經成為標準,所有的主流瀏覽器如ie、netscape、firefox、opera等都支援cookie。

cookie實際上是一小段的文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用response向客戶端瀏覽器頒發乙個cookie。

客戶端瀏覽器會把cookie儲存起來。當瀏覽器再請求該**時,瀏覽器把請求的**連同該cookie一同提交給伺服器。伺服器檢查該cookie,以此來辨認使用者狀態。伺服器還可以根據需要修改cookie的內容。

什麼是session:

除了使用cookie,web應用程式中還經常使用session來記錄客戶端狀態。session是伺服器端使用的一種記錄客戶端狀態的機制,使用上比cookie簡單一些,相應的也增加了伺服器的儲存壓力。

session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。

客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。

cookie和session的區別:

1>.cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上(可以放在檔案,資料庫或者記憶體都可以);

2>.cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙考慮到安全應當使用session;

3>.兩者最大的區別在於生存週期,乙個是ie啟動到ie關閉.(瀏覽器頁面一關 ,session就消失了),乙個是預先設定的生存週期,或永久的儲存於本地的檔案。(cookie)

4>.session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能考慮到減輕伺服器效能方面,應當使用cookie;

5>.單個cookie儲存的資料不能超過4k,很多瀏覽器都限制乙個站點最多儲存20個cookie(session物件沒有對儲存的資料量的限制,其中可以儲存更為複雜的資料型別);

綜上所述,如果說cookie機制是通過檢查客戶身上的「通行證」來確定客戶身份的話,那麼session機制就是通過檢查伺服器上的「客戶明細表」來確認客戶身份。session相當於程式在伺服器上建立的乙份客戶檔案,客戶來訪的時候只需要查詢客戶檔案表就可以了。

session資訊是存放在server端,但session id是存放在client cookie的

3>.安裝session外掛程式

二.cookie與session案例

1>.cookie案例

})//啟動路由並指定監聽的位址及埠,若不指定預設監聽0.0.0.0:8080

router.run("

172.30.100.101:9000")

/**使用curl命令測試:

[[email protected] ~]# curl -v

:9000/cookie

*/}案例**

2>.session案例

})//啟動路由並指定監聽的位址及埠,若不指定預設監聽0.0.0.0:8080

router.run("

172.30.100.101:9000")

/**測試工具建議使用瀏覽器訪問"

:9000/session「,不推薦使用curl命令。

因為curl工具無法快取,瀏覽器是由快取的可以很明顯看到測試效果。

*/}案例**

3>.將session儲存在redis伺服器案例

})//啟動路由並指定監聽的位址及埠,若不指定預設監聽0.0.0.0:8080

router.run("

172.30.100.101:9000")

}**案例

gin框架的引數繫結

shouldbind的強大之處 不關是json型別的資料 還是form表單 還是query string 那種格式 你會發現 都一樣的 shouldbind能根據請求中contenttype型別 來決定我們採用什麼方式 如果你傳來querystring 型別引數 我就用querystring去取 如...

BasicAuth認證 gin框架提供 與Go

basic auth是一種開放平台認證方式,簡單的說就是需要你輸入使用者名稱和密碼才能繼續訪問。bath auth是其中一種認證方式,另一種是oauth。basic auth認證處理簡單幾乎沒有什麼優點了,最大的缺點就是安全性低。不用說,oauth認證方式克服了basic auth認證的所有缺點,並...

正確理解web互動中的cookie與session

cookie儲存在客戶端的純文字檔案 使用者請求伺服器指令碼 指令碼設定cookie內容 並 通過http response傳送cookie內容到客戶端並儲存在客戶端本地 客戶端再次傳送http請求的時候會將本地的cookie內容新增到http請求頭髮送給伺服器,伺服器端指令碼可以呼叫cookie內...