Cookie を使用しておらず、セッション データを使用しています。それはまったく違います。Cookie はブラウザに保存され、セッションはサーバーに保存されます。セッションの考え方はサイドワイドであるため、念頭に置いているパス固有のロジックを手動で実装する必要があります。
特定のパスを持つ実際の Cookie を使用したい場合、それは簡単で、web2py docs に文書化されています:
response.cookies['mycookie'] = 'somevalue'
response.cookies['mycookie']['expires'] = 24 * 3600
response.cookies['mycookie']['path'] = '/'
セッションとクッキーの違いは何ですか? Cookie は、ブラウザに保存される単一の情報の塊です。たとえば、ショッピング カートの内容とフォント サイズの設定を追跡したい場合は、次のようにいくつかの Cookie を保存できます。
- SHOPPING_CART: アイテム 1、アイテム 2、アイテム 3
- FONT_SIZE: 12pt
- 名前: フレッド
これらの各変数は、Cookie を使用してブラウザーに保存されます。セッションでは、session_id という 1 つの情報のみをブラウザーに保存します。
サーバー側では、次のようなセッション データベースが作成されます。
| SESSION_ID | KEY | VALUE
---------------------------------------------------
| 56a3y678 | shopping-cart | Item1,Item2,Item3
| 56a3y678 | font-size | 12pt
| 56a3y678 | name | Fred
このようにサーバー側に情報を保存することには、多くの利点があります。1 つは、ブラウザーが許可するよりも多くの情報を保存できることです。また、サーバーは独自のデータベースを維持しているため、より安全に信頼できます。is_admin_user の Cookie は信頼できませんが、セッション変数は一般に信頼できます。
欠点は、明らかに、ブラウザーに頼ってすべてを最新の状態に保つのではなく、サーバー ソフトウェアに頼っていることです。たとえば、10 台の Web サーバーがあり、ユーザーがそれらの間でローテーションする場合、正常に機能するには、すべてのユーザーが同じセッション データベースと通信する必要があります。