Djangoの基礎(4)セッションを-cookie

I.はじめに

1)クッキーは、httpプロトコルの範囲に属していないHTTPプロトコルを保持することはできませんが、現実が、私たちは「ホールド」するため、クッキーはこのようなシナリオの下で生まれている必要があります。

2)クッキーの動作原理は次のとおりです。サーバーから生成されたコンテンツは、ブラウザはローカルに保存された要求を受け取り、サーバーがこのクッキーの内容であることで判断できるように、ブラウザの訪問は、ブラウザが自動的に、クッキーをもたらします「誰が」

3)が、クッキーを「ホールド」の要件は、ある程度解決しますが、原因クッキー自体に4096バイトまでサポートし、クライアント自体に保存されたクッキーは、傍受または盗難に遭ったので、何か新しいものが必要であることもできますそれは、より多くのバイトをサポートすることができ、彼はサーバー上に保存され、高いセキュリティがあります。それはセッションです。質問は「誰が。」サーバは、訪問者を知らない、ステートレスなHTTPプロトコルの特性に基づいて、あります そして、上記のクッキーは、ブリッジの役割を果たします。私たちは、ユーザーがクッキーを介してアクセスするようにユニークなIDクッキーは、各クライアントを割り当てる与えることができ、サーバは、人々に知っています「」その後、我々、このような「アカウントのパスワード」としてクッキーに基づいて異なるID、しばらくの間、サーバーに保存された個人情報、など。

4)要約すると:クッキーはステートレスHTTPの不足を補うために、サーバは人々「」に知らせてください。しかし、ローカルに保存されたテキスト形式のクッキーは、彼らのセキュリティが貧弱であり、そのクッキーを通じて、我々は異なる識別するためにユーザー、セッション中に4096バイトより個人情報及びテキストの保存に対応します。

5)さらに、上記のセッションクッキーと共通実際に何かが言語やフレームに限定されるものではありません

第二に、認証機構

我々が使用するたびにブラウザをランディングページを訪問したときに、一度私たちは、認証を通過してきました。サーバー側は、独自のランダムな一連の送信文字列つまり、ブラウザに(123ABCと仮定)に保存されたブラウザ側のものにクッキーと呼ばれていますそして、サーバは次のようハハハ、ログイン= trueの場合、ユーザ名=ユーザ情報として、利用者の自身の現在の状態に関する保存されます。しかし、この店がされた辞書が格納され辞書の唯一の重要な問題は、ユーザーのちょうどユニークなクッキーの値ですあなたは、サーバー側のセッション情報を表示するのであれば、それから、理論的には、次のような以下の辞書を見わかります{「123ABCを」:{「ログイン 」:trueの場合、 『ユーザ名:ハハハ』}}。各クッキーがユニークであるので、私たちがしているので、コンピュータのブラウザを変更するには、その後、同じ敷地内に着陸も再確認する必要があります。では、なぜ私たちは、理論的に言って、この辞書のようにそれを見ていますか?であるため、安全上のキーが123ABC値、値を暗号化されているため、実際の配慮大きな辞書は値{「ログイン」:trueの場合、「だけでなく 、ユーザ名:ハハハ」} サーバー側では、暗号化と同じです。だから我々は、サーバーのセッションを開いた場合でも、情報が次のようなものものように見える参照{「123ABC」:dasdasdasd1231231da1231231}

wKioL1bmwJqQWT79AACFVu-rqIs465.gif

第三に、コードの実装

3.1、htmlファイルを作成します

ディレクトリ内の2つのHTMLテンプレートを作成し、ログインページを担当しlogin.htmlと。バックエンドのページには、背景ページを表し、

画像

ファイルのlogin.htmlと内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
    <link rel="stylesheet" href="http://830909.blog.51cto.com/static/plugins/bootstrap-3.3.5-dist/css/bootstrap.min.css">
</head>
<body>
    <div class="container">
        <form action="login.html" method="post">
            <div class="form-group">
                <label class="sr-only">username</label>
                <input type="text" class="form-control" name="username" placeholder="用户名"/>
            </div>
            <div class="form-group">
                <label class="sr-only">Password</label>
                <input type="password" class="form-control" name="passwd" placeholder="密码"/>
            </div>
            <div class="form-group">
                <input class="btn btn-primary" type="submit" value="http://830909.blog.51cto.com/8311014/Submit">
            </div>
        </form>
</div>
<script type="application/Javascript" src="http://830909.blog.51cto.com/static/js/jquery-2.2.1.min.js"></script>
<script type="application/javascript" src="http://830909.blog.51cto.com/static/plugins/bootstrap-3.3.5-dist/js/bootstrap.min.js"></script>
</body>
</html>

backend.html文件内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>backend</title>
    <link rel="stylesheet" href="http://830909.blog.51cto.com/static/plugins/bootstrap-3.3.5-dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="http://830909.blog.51cto.com/static/css/commons.css">
</head>
<body>
<div class="container">
    <h2>cookie 内容是 {{ cookie_content }}</h2>
    <h2>session 内容是 {{ session_content }}</h2>
    <h2>登录用户名 :{{ username }}</h2>
    <a href="http://830909.blog.51cto.com/logout/">注销</a>
</div>
<script type="application/javascript" src="http://830909.blog.51cto.com/static/js/jquery-2.2.1.min.js"></script>
<スクリプトタイプ= "アプリケーション/ javascriptの" SRC = "http://830909.blog.51cto.com/static/plugins/bootstrap-3.3.5-dist/js/bootstrap.min.js"> </ SCRIPT> 
< / BODY> 
</ HTML>

おすすめ

転載: www.cnblogs.com/hujinzhong/p/11584927.html