什么是cookie和session?

发布时间 2023-10-23 11:57:41作者: 可可eleven

HTTP/HTTPS请求的特点:

无状态的短链接

短链接:

一次请求响应后会断开浏览器与网站之间的连接

如果在发送一次请求,则需要重新建立连接,这时网站已经不知道之前已经建立过连接,只认为他是一个新人发送的请求

无状态:

不携带以前的状态,默认是全新的请求

 

什么是cookie和session?

为了让浏览器记住我之前访问过,建立过连接,浏览器引入了cookie和session

网站发给浏览器一个凭证,保存在浏览器,新建立的访问连接没有凭证,之前访问过浏览器就保存有凭证

 

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。

当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
信息保存的时间可以根据需要设置.

cookie:

保存在浏览器上的键值对

发送请求时,自动携带

如果网站自己伪造了一个凭证,这时候浏览器肯定不认识,因此网站设置了一个区域,把凭证和对应信息也保存下来,这就是session

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

每个用户访问服务器都会建立一个session,那服务器是怎么标识用户的唯一身份呢?事实上,用户与服务器建立连接的同时,服务器会自动为其分配一个SessionId。

 

session可以保存在数据中中,也可以保存在redis、文件中,django是默认保存在数据库中