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

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

创新互联建站-专业网站定制、快速模板网站建设、高性价比庆城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式庆城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖庆城地区。费用合理售后完善,十多年实体公司更值得信赖。

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

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

我们知道了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的关系~有的新人朋友,对这里理解不是非常透彻,今天解释一下相关的流程,希望对大家有所帮助~

当前名称:Pythonweb框架中的setcookie究竟做了什么?session与cookie关系
文章起源:https://www.cdcxhl.com/article26/ihsgcg.html

成都网站建设公司_创新互联,为您提供移动网站建设网站导航网站收录品牌网站设计小程序开发网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设