第六章 Cookies和Session

2022-05-15 01:14:00 字數 2394 閱讀 4265

目錄三、session的工作原理

四、如何操作cookie

五、案例

六、如何操作session

由於 http 協議是無狀態的,無法記錄使用者狀態,為了能夠記錄使用者狀態,就出現了 cookie 和 session (cookie 安全性不足才出現的 session)來識別並儲存使用者狀態

cookie就是儲存在客戶端瀏覽器上的鍵值對

cookie 雖然是寫在客戶端瀏覽器上的,但其其實是服務端設定的

瀏覽器可以選擇不服從命令 禁止寫 cookie (設定,禁用 cookie)

不讓寫 cookie 的話,所有要儲存登入狀態的頁面都不能登入成功

檢視cookie的方式

session 是儲存在服務端的鍵值對

cookie 雖然在一定程度上解決了 「保持狀態」 的需求,但是由於cookie 本身最大支援 4096 位元組,以及 cookie 本身儲存在客戶端,可能被攔截或竊取,因此就需要有一種新的東西,它能支援更多的位元組,並且他儲存在伺服器,有較高的安全性,然後就出現了 session 。

django 操作 cookie 要利用 httpresponse 物件

(返回給客戶端瀏覽器的都必須是 httpresponse 物件)

目前httpresponse()和render()物件都是返回httprespose物件

#設定cookie利用的就是httpresponse物件

obj1.set_cookie('k1','v1')

#獲取cookie

request.cookies.get('k1')

#刪除cookie

obj1.delete_cookie("k1")

#設定超時時間

max_age=none, 超時時間

需求:做個登入驗證(登陸成功才能訪問幾個頁面)

思考

裝飾器怎麼用?放函式上面就好了

@login_auth

def home(request):

# 校驗使用者是否登入

# if request.cookies.get('name'):

# return httpresponse('我是主頁 只有登入了才能看')

# return redirect('/login/')

# 上面三行**是不引入裝飾器的原始方法

return httpresponse('我是主頁 只有登入了才能看')

當成乙個 字典 來操作就行了

request.session['key'] = value  # 僅僅只會在記憶體產生乙個快取

1.django內部自動生成了隨機的字串

2.在django_session表中存入資料

session_key session_data date

隨機字串1 資料1 ...

隨機字串2 資料2 ...

隨機字串3 資料3 ...

3.將產生的隨機字串傳送給瀏覽器 讓瀏覽器儲存到cookie中

sessionid:隨機字串

request.session.get('key')

1.瀏覽器傳送cookie到django後端之後 django會自動獲取到cookie值

2.拿著隨機字串去django_session表中比對 是否有對應的資料

3.如果比對上了 就講隨機字串所對應的資料 取出賦值給request.session

如果對不上 那麼request.session就是個空

說明: django session表是針對瀏覽器的 不同的瀏覽器來 才會有不同的記錄

request.session.delete()  # 只刪除服務端的session

request.session.flush() # 瀏覽器和服務端全部刪除

request.session.set_expiry(value多種配置)

數字0

不寫時間格式

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...

第六章 指標

1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...

第六章總結

6.1 使用滑鼠 6.1.1 滑鼠時間和滑鼠訊息 根據使用者操作滑鼠時滑鼠的位置,滑鼠訊息分為兩類 客戶區滑鼠訊息和非客戶區滑鼠訊息。1.客戶去滑鼠訊息 2.當滑鼠游標位於視窗的使用者區時,將生成客戶滑鼠訊息。滑鼠訊息和鍵盤訊息有所不同,windows 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...