最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python的Django框架中的Cookie相關(guān)處理

 更新時間:2015年07月22日 15:43:30   投稿:goldensun  
這篇文章主要介紹了詳解Python的Django框架中的Cookie相關(guān)處理,Cookie存儲是每個開發(fā)框架都會著重注意的重要功能,需要的朋友可以參考下

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

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

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

當(dāng) Google響應(yīng)時,HTTP的響應(yīng)是這樣的:

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值。 因此當(dāng)你下次訪問Google時,你的瀏覽器會發(fā)送像這樣的請求:

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

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

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

讀取已經(jīng)設(shè)置好的cookies極其簡單。 每一個`` HttpRequest`` 對象都有一個`` COOKIES`` 對象,該對象的行為類似一個字典,你可以使用它讀取任何瀏覽器發(fā)送給視圖(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稍微復(fù)雜點。 你需要使用 HttpResponse對象的 set_cookie()方法。 這兒有個基于 GET 參數(shù)來設(shè)置 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() 傳遞一些可選的參數(shù)來控制cookie的行為

好壞參半的Cookies

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

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

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

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

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

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

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

相關(guān)文章

  • 只用四步修改jupyter的工作路徑/存儲路徑

    只用四步修改jupyter的工作路徑/存儲路徑

    為了方便用戶使用以及減少系統(tǒng)盤的占用,可以將Jupyter的默認工作路徑修改到電腦中常用的路徑中,這篇文章主要給大家介紹了關(guān)于如何只用四步修改jupyter的工作路徑/存儲路徑的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Python?SDK實現(xiàn)私服上傳下載的示例

    Python?SDK實現(xiàn)私服上傳下載的示例

    本文主要介紹了Python?SDK實現(xiàn)私服上傳下載的示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下<BR>
    2021-11-11
  • Flask SQLAlchemy一對一,一對多的使用方法實踐

    Flask SQLAlchemy一對一,一對多的使用方法實踐

    Flask-SQLAlchemy一對一,一對多的使用方法實踐,需要的朋友可以參考下
    2013-02-02
  • Python for循環(huán)你了解嗎

    Python for循環(huán)你了解嗎

    這篇文章主要為大家介紹了Python for循環(huán),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python實現(xiàn)自動化整理文件的示例代碼

    Python實現(xiàn)自動化整理文件的示例代碼

    這篇文章主要介紹了如何通過Python編程完成文件的自動分類、文件和文件夾的快速查找、重復(fù)文件的清理、圖片格式的轉(zhuǎn)換等常見工作,需要的可以參考一下
    2022-09-09
  • Biblibili視頻投稿接口分析并以Python實現(xiàn)自動投稿功能

    Biblibili視頻投稿接口分析并以Python實現(xiàn)自動投稿功能

    這篇文章主要介紹了Biblibili視頻投稿接口分析并以Python實現(xiàn)自動投稿功能,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Jupyter Notebook運行代碼無反應(yīng)問題及解決方法

    Jupyter Notebook運行代碼無反應(yīng)問題及解決方法

    這篇文章主要介紹了Jupyter Notebook運行代碼無反應(yīng)問題及解決方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python實現(xiàn)簡單socket通信的方法

    python實現(xiàn)簡單socket通信的方法

    這篇文章主要介紹了python實現(xiàn)簡單socket通信的方法,結(jié)合實例形式分析了socket通信服務(wù)端與客戶端的具體實現(xiàn)技巧,需要的朋友可以參考下
    2016-04-04
  • python搜索指定目錄的方法

    python搜索指定目錄的方法

    這篇文章主要介紹了python搜索指定目錄的方法,涉及Python操作目錄的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • python爬蟲使用cookie登錄詳解

    python爬蟲使用cookie登錄詳解

    這篇文章主要介紹了python爬蟲使用cookie登錄詳解,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12

最新評論

工布江达县| 志丹县| 乌兰察布市| 盘山县| 济南市| 工布江达县| 承德县| 桃源县| 紫金县| 安康市| 分宜县| 台北市| 肃北| 沅江市| 错那县| 嫩江县| 南丰县| 河东区| 沁阳市| 辽宁省| 嘉峪关市| 马尔康县| 綦江县| 尉犁县| 玛多县| 和硕县| 万宁市| 中宁县| 镇沅| 云林县| 洛浦县| 德格县| 揭东县| 秦安县| 秭归县| 康定县| 东宁县| 寿宁县| 海原县| 微山县| 浠水县|