关于 浏览器中的 cookie 与 session 的相关阐述

首先 cookie这个概念,源自于客户端保存数据的需要。

1. 服务端只创建 cookie字符值:

客户端向服务端发送请求,建立连接。服务端创建 cookie字符值,作为响应头返回。

如果客户端是浏览器,会自动存储这个 Set-Cookie  的值到 浏览器的session 中。如果是脚本,可以手动将该 cookie 保存起来(保存位置可能是session、硬盘或其他位置)。也可以将 cookie通过响应头再次转发出去。

2. 客户端(脚本)发送请求,获取 cookie,并维持一个 session中:

由于脚本的 session中,通过类似 session_id的东西 将内存(session)共享。当脚本发送的请求返回一个携带 set-cookie 的响应时,即将此 set-cookie 中的数据加载到 脚本的内存(session)中。

那么每次发送请求时,都可以携带此 cookie。

3. 另一种解决方案。客户端(脚本)发送请求,获取 cookie,手动存储到内存、本地硬盘或数据库中:

脚本获取 携带 set-cookie 的响应, 手动将 cookie保存到内存、硬盘或数据库中。这样每次发送请求时,需手动获取 cookie并放置该 cookie 到此请求的 request header 中。

PS:浏览器其实也是维持一个 session,这个 session 姑且叫它本地 session(或者说是浏览器的 session)。当收到 携带 set-cookie  的响应头时,浏览器会自动将该 cookie 保存到本地 session 中。不同的 cookie根据域名的不同存到不同的 本地 session中。

当你再次发送请求时,会自动携带该域名下的 本地session。当关闭浏览器时,该 本地 session也关闭。

此外,如果 set-cookie设置了过期时间,那么当 本地 session关闭时,可能还会将此 cookie 自动保存到硬盘中。当浏览器重新开启时,会自动 load硬盘中保存的 cookie。

PS:这就跟 数据库中的 session一样。从数据库中获取到值,并缓存到 session中。以便下次获取,而不用每次都从硬盘上读取。浏览器中的 session 是这个原理,服务端的 session也是这个原理。

时间: 2024-11-13 08:50:24

关于 浏览器中的 cookie 与 session 的相关阐述的相关文章

正确理解web交互中的cookie与session

cookie存储在客户端的纯文本文件 用户请求服务器脚本 脚本设置cookie内容 并 通过http-response发送cookie内容到客户端并保存在客户端本地 客户端再次发送http请求的时候会将本地的cookie内容添加到http请求头发送给服务器,服务器端脚本可以调用cookie内容 流程如图 cookie.php 脚本 客户端第一次访问(发送http请求)脚本设置cookie(setcookie)到客户端 并不会显示cookie内容 此时客户端的cookie文件已经生成 cookie

Django中的cookie与session

cookie与session的实现原理 HTTP被设计为”无状态”,每次请求都处于相同的空间中. 在一次请求和下一次请求之间没有任何状态保持,我们无法根据请求的任何方面(IP地址,用户代理等)来识别来自同一人的连续请求.上图很明显的展示了Django的session与cookie的实现原理.服务器会生成两份相同的cookie字符串,一份保存在本地,一份发向求情的浏览器.浏览器将收到的cookie字符串保存下来,当下次再请求时,会将这段cookie发送到服务器,服务器得到这段cookie会与本地保

IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息:比如用户信息.聊天历史记录.好友列表等等,长连接则是用于实时的聊天消息或指令的接收和发送. 作为IM系统中不可或缺的技术,Http短连的重要性无可替代,但Http作为传统互联网信

{Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 xxx 八 xxx 一 会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了.从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束.在通话过程中,你会向10086发出多个请求,那么这多个请

Django中使用cookie和session

目录 Django中使用cookie与session 一.cookie 二.session Django中使用cookie与session 一.cookie cookie的由来:由于HTTP协议是无状态的,每次请求都是独立的请求,为了能够保存某些数据,cookie便产生了. 什么是cookie:cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对.下次访问服务器的时候,浏览器会自动携带这些键值对,以便服务器提取有用数据. cookie的原理:cookie的工作原理是:

Selenium2学习-017-WebUI自动化实战实例-015-获取浏览器中的 cookie 信息

日常我们在使用浏览器时,尤其是登录 WEB 应用时,我们的一些信息其实是保存在了浏览器的 cookie 信息中.我们可以通过浏览器自带的开发工具,进行查看相应的 cookie 信息,例如在火狐.chrome 中均可通过 F12 打开开发者工具打开.以下截图为在 chrome 中打开易迅网时的 cookie 信息: 若是小主您登录了相应的网页应用,cookie 中还会含有您的一些用户信息内容.那么这些 cookie 信息在我们日常 WebUI 自动化脚本的编写过程中有什么用途呢 ? 可以作为网页打

微信内置浏览器中的cookie很诡异呀

微信内置浏览器中的cookie很诡异呀 这是设置和删除COOKIE的代码 function set_cookie($var ,$value = '' ,$expire = 0){ $path = '/'; $domain = 'aaa.com'; $auth = 'sadfsadfasdf'; if($value!='') $value = _myencrypt($value ,$auth); $var = '__abc_'.$var; if($expire==0){ $expire = 0;

Flask中使用cookie和session

Flask中使用cookie和session 设置cookie from flask import Flask,Response app = Flask(__name__) @app.route('/index') def index(): response = Response("设置cookie") response.set_cookie('username','sfencs') return response if __name__ == '__main__': app.run(

网络中的cookie和session的区别

一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能要借助于cookie机制来达到保存标识的目的,但也可以使用其他方法. cookie的内容包括:名字,值,过期时间,路径和域.路径和域一起构成了cookie的作用范围.如果不设置过期时间,则表示这个cookie的生命周期为浏览器的会话期间,关闭浏览器窗口,coo