Cookie和Session
#Cookie
簡介
###什麼是Cookie
- HTTP是無狀態的協議,伺服器不能記錄瀏覽器的訪問狀態,也就是說伺服器不能區分兩次請求是否是一個客戶端,這樣的設計嚴重的阻礙了web程式的設計。
- Cookie是解決HTTP協議無狀態的方案之一。
- Cookie實際上就是伺服器儲存在瀏覽器上的一段資訊,瀏覽器有了Cookie之後,每次向伺服器傳送請求時都會同時將該資訊傳送給伺服器,伺服器在收到請求之後,就可以根據該資訊處理請求。
- Cookie由伺服器建立,併傳送給瀏覽器,最終由瀏覽器儲存。
###Cookie的用途
- 電商網站的購物車
- 保持使用者登入狀態
###Cookie的缺點
- Cookie作為請求或者響應的報文進行傳送,無形中增加了網路流量
- Cookie使用明文傳送安全性差
- 各個瀏覽器對Cookie有限制,每個網站大概只能儲存20個Cookie
- 可以在瀏覽器禁止Cookie
###Cookie的使用 this.Ctx.SetCookie("username", "admin")
1.設定Cookie,引數一為Cookie名稱,引數二為Cookie值
2.設定Cookie是不能存在中文,如果存在中文雖然可以設定成功,但是不能取出.- 取出
Cookie:this.Ctx.GetCookie("username")
this.Ctx.SetCookie("username", "admin", 10)
1.引數三為Cookie的存活時間,單位秒。
2.如果不設定時間,Cookie只在本次回話有效,Beego預設存活3600秒。this.Ctx.SetCookie("username", "admin", 60*60*60*60, "/demo2")
1.Cooie的路徑是指告訴瀏覽器訪問那些網址時需要帶上該Cookie.
2.瀏覽器會儲存很多網站的Cookie,比如百度的Cookie,新浪的Cookie,騰訊的Cookie,瀏覽器在訪問百度時不可能傳送新浪的Cookie,也不可能訪問每個網站都帶上所有的Cookie,所以我們需要為Cookie設定一個Path屬性,用於告訴瀏覽器何時需要帶上該Cookie。
3.我們訪問的網站必須是Cookie儲存路徑的子集,在訪問伺服器時才會帶上該Cookie。
4.如果是想設定Cookie的儲存路徑而不設定存活時間是不行的,因為SetCookie方法預設第三個引數是設定存活時間,第四個引數是設定儲存路徑。
#Session
##Session是什麼
- Session是一段儲存在伺服器上的資訊,當客戶端第一次訪問伺服器時建立Session,同時也建立一個名為beegosessionID,值為建立的Seesion的id的Cookie。
- 這個beegoseesionID對應伺服器中的一個Session物件,通過它就可以獲取到儲存使用者資訊的Session。
##Seeion的必要性
- 使用Cookie有一個非常大的侷限,如果Cookie很多,則無形的增加了客戶端與服務端的資料傳輸。
- Cookie安全性差
- 由於大部分瀏覽器對Cookie大小和數量有限制,所以不能在Cookie中儲存過多的資訊。
##Session的使用
- Beego預設關閉Session,如果想要使用Session,需要在主函式中或配置檔案中開啟Session,分別為
Beego.BConfig.WebConfig.Session.SessionOn = true,session = true
。 - 設定
Session: this.SetSession("username", "admin")
this.GetSession("username")
,如果沒有獲取到Session和GetCookie不一樣,GetCookie會返回空字串,但是GetSession返回nil。- 通過
this.DelSession("username")
和this.DestroySession()
均可刪除Session,其區別在於DelSession刪除指定Session,而DestroySession刪除全session。 - 設定Sesson的時候可以存在中文。Beego中的Session在當前回話預設存活3600秒,可以在主函式或配置檔案中設定Session的存活時間,分別為
beego.BConfig.WebConfig.Session.SessionGCMaxLifetime,sessiongcmaxlifetime
- 可以通過
beego.BConfig.WebConfig.Session.SessionName = "hellobeegoid123"
和sessionname=hellobeegoid
來設定session的名稱,如果同時在配置檔案和主函式中設定,主函式優先,應為beego先讀取配置檔案後執行主函式,所以主函式優先。
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928
清華團隊帶你實戰區塊鏈開發
掃碼獲取海量視訊及原始碼 QQ群:721929980
相關文章
- cookie 和 sessionCookieSession
- session和cookieSessionCookie
- 【Javaweb】Cookie和SessionJavaWebCookieSession
- session和cookie關係SessionCookie
- Session和Cookie機制SessionCookie
- 撩下Cookie和SessionCookieSession
- laravel操作session和cookieLaravelSessionCookie
- 關於Session和CookieSessionCookie
- localStorage 與 sessionStorage / cookie 和 sessionSessionCookie
- cookie和session的區別CookieSession
- 聊一聊session和cookieSessionCookie
- nodeJS之Cookie和Session(一)NodeJSCookieSession
- 深入分析Session和CookieSessionCookie
- Django框架之Cookie和SessionDjango框架CookieSession
- 對session和cookie的理解SessionCookie
- Tomcat 中的 Session 和 CookieTomcatSessionCookie
- cookie sessionCookieSession
- cookie & sessionCookieSession
- Cookie 和 Session 關係和區別CookieSession
- 關於Cookie、session和Web StorageCookieSessionWeb
- flask框架中的cookie和sessionFlask框架CookieSession
- session物件、cookie物件和appliaction物件Session物件CookieAPP
- cookie&sessionCookieSession
- Session與CookieSessionCookie
- 你真的瞭解 Cookie 和 Session 嗎CookieSession
- 你真的瞭解 Cookie 和 Session 嗎?CookieSession
- 前端基礎:Session 和 Cookie 差別前端SessionCookie
- 你真的瞭解 Session 和 Cookie 嗎?SessionCookie
- Django基礎六之cookie和sessionDjangoCookieSession
- session 和 cookie 有什麼區別?SessionCookie
- cookie和session 有什麼區別?CookieSession
- cookie、session總結CookieSession
- Cookie & Session詳解CookieSession
- Cookie&Session&JSPCookieSessionJS
- 理解 cookie、session、tokenCookieSession
- Django Cookie與SessionDjangoCookieSession
- cookie、session、web storageCookieSessionWeb
- 第74節:Java中的Cookie和SessionJavaCookieSession