1 1. Cookie是什麼 2 保存在瀏覽器端的鍵值對 3 4 爲何要有Cookie? 5 由於HTTP請求是無狀態的 6 7 Cookie的原理? 8 服務端能夠在返回響應的時候 作手腳 9 在瀏覽器上寫入鍵值對(Cookie) 10 11 瀏覽器發送請求的時候會自動攜帶該網站保存在我瀏覽器的鍵值對(Cookie) 12 13 Django 從請求攜帶的Cookie中取值: 14 request.COOKIES.get("is_login") 15 request.get_signed_cookie(key, default=None, salt="xxx") 16 Django中設置Cookie:(針對的是響應對象) 17 rep = HttpResponse()/render(request, "test.html)/redirect() 18 rep.set_signed_cookie(key, value, salt="xxx", max_age=7) 19 Django中刪除Cookie:(註銷) 20 rep.delete_cookie(key) 21 22 2. Session是什麼 23 Session保存在服務端的鍵值對 24 25 Session依賴於Cookie 26 27 dsadasdsadsafsjkndf: {"is_login": 1, "name": "xiaohei", "age":18} 28 dsaasdaknfgreryywdf: {"is_login": 1, "name": "xiaobai", "age":20} 29 wqrqrteknfgzddasqfg: {"is_login": 0, "name": "xiaohui", "age":48} 30 31 給瀏覽器寫入Cookie: 32 sessionid:wqrqrteknfgzddasqfg 33 34 1. 從用戶發來的請求的Cookie中 根據 sessionid 取值, 取到 wqrqrteknfgzddasqfg 35 2. 根據特殊字符串找到對應的 Session 數據 --> {"is_login": 0, "name": "xiaohui", "age":48} 36 3. request.session.get("is_login") --> 從Session取值 37 38 39 Django中設置Session: 40 request.session["is_login"] = 1 41 request.session.set_expiry(7) # 設置超時時間 (Cookie和Session數據的) 42 43 44 在settings.py中設置,每次請求都刷新Session超時時間 45 SESSION_SAVE_EVERY_REQUEST = True 46 47 Django中刪除Session: 48 request.session.flush() 清除Cookie和Session數據 49 50 request.session.clear_expired() 將全部Session失效日期小於當前日期的數據刪除 51