欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

詳解Python的Django框架中的Cookie相關處理

系統 1925 0

瀏覽器的開發者在很早的時候就已經意識到, HTTP's 的無狀態會對Web開發者帶來很大的問題,于是(cookies)應運而生。 cookies 是瀏覽器為 Web 服務器存儲的一小段信息。 每次瀏覽器從某個服務器請求頁面時,它向服務器回送之前收到的cookies

來看看它是怎么工作的。 當你打開瀏覽器并訪問 google.com ,你的瀏覽器會給Google發送一個HTTP請求,起始部分就象這樣:

            
GET / HTTP/1.1
Host: google.com
...


          

當 Google響應時,HTTP的響應是這樣的:

            
HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: PREF=ID=5b14f22bdaf1e81c:TM=1167000671:LM=1167000671;
      expires=Sun, 17-Jan-2038 19:14:07 GMT;
      path=/; domain=.google.com
Server: GWS/2.1
...


          

注意 Set-Cookie 的頭部。 你的瀏覽器會存儲cookie值( PREF=ID=5b14f22bdaf1e81c:TM=1167000671:LM=1167000671 ) ,而且每次訪問google 站點都會回送這個cookie值。 因此當你下次訪問Google時,你的瀏覽器會發送像這樣的請求:

            
GET / HTTP/1.1
Host: google.com
Cookie: PREF=ID=5b14f22bdaf1e81c:TM=1167000671:LM=1167000671
...


          

于是 Cookies 的值會告訴Google,你就是早些時候訪問過Google網站的人。 這個值可能是數據庫中存儲用戶信息的key,可以用它在頁面上顯示你的用戶名。 Google會(以及目前)使用它在網頁上顯示你賬號的用戶名。
存取Cookies

在Django中處理持久化,大部分時候你會更愿意用高層些的session 和/或 后面要討論的user 框架。 但在此之前,我們需要停下來在底層看看如何讀寫cookies。 這會幫助你理解本章節后面要討論的工具是如何工作的,而且如果你需要自己操作cookies,這也會有所幫助。

讀取已經設置好的cookies極其簡單。 每一個`` HttpRequest`` 對象都有一個`` COOKIES`` 對象,該對象的行為類似一個字典,你可以使用它讀取任何瀏覽器發送給視圖(view)的cookies。

            
def show_color(request):
  if "favorite_color" in request.COOKIES:
    return HttpResponse("Your favorite color is %s" %       request.COOKIES["favorite_color"])
  else:
    return HttpResponse("You don't have a favorite color.")


          

寫cookies稍微復雜點。 你需要使用 HttpResponse對象的 set_cookie()方法。 這兒有個基于 GET 參數來設置 favorite_color

??? cookie的例子:

            
def set_color(request):
  if "favorite_color" in request.GET:

    # Create an HttpResponse object...
    response = HttpResponse("Your favorite color is now %s" %       request.GET["favorite_color"])

    # ... and set a cookie on the response
    response.set_cookie("favorite_color",
              request.GET["favorite_color"])

    return response

  else:
    return HttpResponse("You didn't give a favorite color.")


          

你可以給 response.set_cookie() 傳遞一些可選的參數來控制cookie的行為

好壞參半的Cookies

也許你已經注意到了,cookies的工作方式可能導致的問題。 讓我們看一下其中一些比較重要的問題:

??? cookie的存儲是自愿的,一個客戶端不一定要去接受或存儲cookie。 事實上,所有的瀏覽器都讓用戶自己控制 是否接受cookies。 如果你想知道cookies對于Web應用有多重要,你可以試著打開這個瀏覽器的 選項:

??? 盡管cookies廣為使用,但仍被認為是不可靠的的。 這意味著,開發者使用cookies之前必須 檢查用戶是否可以接收cookie。

??? Cookie(特別是那些沒通過HTTPS傳輸的)是非常不安全的。 因為HTTP數據是以明文發送的,所以 特別容易受到嗅探攻擊。 也就是說,嗅探攻擊者可以在網絡中攔截并讀取cookies,因此你要 絕對避免在cookies中存儲敏感信息。 這就意味著您不應該使用cookie來在存儲任何敏感信息。

??? 還有一種被稱為”中間人”的攻擊更陰險,攻擊者攔截一個cookie并將其用于另一個用戶。 第19章將深入討論這種攻擊的本質以及如何避免。

??? 即使從預想中的接收者返回的cookie也是不安全的。 在大多數瀏覽器中您可以非常容易地修改cookies中的信息。有經驗的用戶甚至可以通過像mechanize(http://wwwsearch.sourceforge.net/mechanize/) 這樣的工具手工構造一個HTTP請求。

??? 因此不能在cookies中存儲可能會被篡改的敏感數據。 在cookies中存儲 IsLoggedIn=1 ,以標識用戶已經登錄。 犯這類錯誤的站點數量多的令人難以置信; 繞過這些網站的安全系統也是易如反掌。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠97老肥女 | 97国产精品最新 | 久久综合一区二区三区 | 91专区在线观看 | 91精品久久久久久久久久 | 偷拍亚洲制服另类无码专区 | 狠狠久久 | 成年人在线看片 | 精品久久久久久久久久久久久久久 | 日本高清无吗 | 四虎884aa永久播放地址http | 免费区一级欧美毛片 | aiai888永久免费视频 | 日韩中文字幕一区 | 国产成人无码网站m3u8 | 五月激情综合网 | 亚洲欧美小视频 | 深夜福利网站 | 猛龙怪客 | 国亚洲欧美日韩精品 | 日本精品人妻无码免费大全 | 成年男女男免费视频网站不卡 | 亚洲成在人线中文字幕 | 一级黄色绿像片 | 精品视频免费观看 | 亚洲性一区 | 奇米88 | 亚洲最新色| 天天草比 | 亚州人成网在线播放 | 国产成人精品福利色多多 | 黄色视屏免费看 | 天天爱天天做久久天天狠狼 | 伊人影院综合 | 精品综合久久久久久99 | jizz亚洲日本| 国产午夜精品一区二区三区嫩草 | 久久99国产精品成人欧美 | 加勒比婷婷色综合久久 | 九九热精品在线观看 | 成人欧美一区二区三区在线播放 |