python—cookie和session

概念:

一、cookie:

在网站中,http请求是无状态的。

也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。

cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,
然后浏览器保存在本地,当该用户发送第二次请求的时候,
就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。

cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4K。
因此使用cookie只能存储一些小量的数据。

二、session:

session和cookie的作用有点类似,都是为了存储用户相关的信息。

不同的是,cookie是存储在本地浏览器,而session存储在服务器。

存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的。

详解:
由于http的无状态性,为了使某个域名下的所有网页能够共享某些数据,session和cookie出现了。客户端访问服务器的流程如下

首先,客户端会发送一个http请求到服务器端。
服务器端接受客户端请求后,建立一个session,并发送一个http响应到客户端,这个响应头,其中就包含Set-Cookie头部。该头部包含了sessionId。

在这里插入图片描述

注意

cookie只是实现session的其中一种方案。虽然是最常用的,但并不是唯一的方法。

禁用cookie后还有其他方法存储,比如放在url中现在大多都是Session + Cookie,
但是只用session不用cookie,或是只用cookie,不用session在理论上都可以保持会话状态。

可是实际中因为多种原因,一般不会单独使用用session只需要在客户端保存一个id,实际上大量数据都是保存在服务端。

如果全部用cookie,数据量大的时候客户端是没有那么多空间的。

如果只用cookie不用session,那么账户信息全部保存在客户端,一旦被劫持,全部信息都会泄露。
并且客户端数据量变大,网络传输的数据量也会变大

小结

简而言之, session 有如用户信息档案表, 里面包含了用户的认证信息和登录状态等信息. 而 cookie 就是用户通行证

发布了36 篇原创文章 · 获赞 49 · 访问量 2845

猜你喜欢

转载自blog.csdn.net/HENG302926/article/details/104380625