Pythonweb框架中的setcookie究竟做了什么?session与cookie关系

简介: Pythonweb框架中的setcookie究竟做了什么?session与cookie关系

用python web框架的同学都知道 ,在使用例如 django,flask,tornado等这些web框架的时候,都有已经为大家封装好了的 setcookie的方法。那么这个方法究竟做了什么。可能有些新人朋友并不能很好的理解。那么今天dewei就带着大家剖析一下,这些web框架里的类似 setcookie的方法(名字可能各不相同),究竟做了什么?

首先大家知道,在一个http请求中,至少包含两个结构,1是headers,请求的头信息,里边包含发起者的一些信息和一些附带的自定义信息;2是body 请求传输的数据。那么在headers中,有一个key 叫做 "Set-Cookie",当web服务器的请求response返回浏览器端的时候,如果 这个response的headers中包含“Set-Cookie”,那么浏览器就认为有要种植到cookie里的键值对。那么这个“Set-Cookie”的结构如何呢?我们在进一步和大家讨论。

screenshot

我们知道了headers中有一个“Set-Cookie” 他是一个键值对,那么值就是要存储的cookie信息。那么我们先来写一个demo,根据demo 我们来解释他们分别是什么。

"Set-Cookie": "token=xxxxx;Domain=xxxxx;Path=/;Expires=GMT"

好。我们看上边的例子,有一个setcookie,他的value是一个字符串,那么大家和我从前往后看:token=xxxxx 是我们要存入cookies里的键值对,domain是你要将这个键值对存入哪个域名下,比如 www.abc.com; 那么当存在这个域名下之后,只有在这个域下才可以看到这个cookie信息,path是具体显示在这个域名下的哪个path,一般就在根就好了,最后的是expires是一个该键值对的过期时间,这个时间,是一个GMT时间(要加8小时哟)。当然还有其他的参数,比如httponly,只有设置这个cookie的后端才可以获取和修改,max-age 他是一个有效期按照秒来计算的,一般和expires有一个存在就可以了。这里边有一个坑在于,设置时间的时候,有的框架是给一个datetime,有的是给一个秒,都不一样,但如果从原始状态设置的时候,是要设置 GMT时间的。这里要注意下。另外这里每个参数之间用 “;”隔开,那么 那些web框架里的类似setcookie就是将你传进去的参数封装好后放入headers中~更多的一些参数可以查看 这里

最后我们再来说一说session,对于session 大家第一个理解的内容普遍(初级)是:它存在服务器端。没有错,他的最终的value的确存在服务端,但其实session和cookie也有着重要的牵绊。当生成一个session的时候,会生成一个key:value,比如 session_12138:uidxxxxx 这是一个键值对。但实际上他依然会种一个cookie到浏览器,类似这样的键值对 session_token: session_12138 。大家有没有发现什么?这个cookie里的value 实际上就是 服务器端的 key,所以 通过cookie取出 session的key,在通过key取得session最终的结果。这就是session与cookie的关系~有的新人朋友,对这里理解不是非常透彻,今天解释一下相关的流程,希望对大家有所帮助~

相关文章
|
24天前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
47 4
|
27天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
2月前
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
170 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
2月前
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
24 1
|
3月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
3月前
|
存储 前端开发 Java
JavaWeb基础7——会话技术Cookie&Session
会话技术、Cookie的发送和获取、存活时间、Session钝化与活化、销毁、用户登录注册“记住我”和“验证码”案例
JavaWeb基础7——会话技术Cookie&Session
|
3月前
|
存储 安全 NoSQL
Cookie、Session、Token 解析
Cookie、Session、Token 解析
63 0
|
4月前
|
存储 JavaScript 前端开发
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
221 1
|
4月前
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
64 1
|
4月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
252 0