134.cookie、session的工作机制
cookie和session
(1)cookie:在网站中,http请求时无状态的,也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求的是哪个用户(在中国我们因为IP地址不足就会在同一个局域网下使用同一个公网ip地址,如果在同一个时间段有多位用户访问同一个网站的话,该网站就不能识别到底是哪个用户发起的请求了)。而cookie就是为了解决这个问题出现的,第一次登录服务器之后返回一些数据(cookie)给浏览器,然后浏览器保存到本地,当用户再次发起请求的时候,就会自动携带上次请求存储的cookie信息给服务器,服务器通过浏览器携带的数据就能判断当前是哪个用户。cookie存储的数据有限,不同的浏览器有不同的存储大小,但一般不能超过4kb,因此,使用cookie只能存储一些小量的数据。
(2)session:session和cookie的作用相似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,session是一个思路,一个概念,一个服务器存储授权信息的解决方案,不同的服务器,不同的框架,不同的语言有不同的实现。虽然实现不一样,但是他们的目的都是服务器为了方便存储数据的。
session的出现,是为了解决cookie存储数据不安全的问题的。
(3)cookie和session结合使用:web开发至今,cookie和session的使用已经出现了一些非常成熟的方式:一般有两种存储方式:
1. 存储在服务端:通过cookie存储一个sessionid,然后具体的数据保存在session中,如果用户已经登录了,则服务器会在cookie中保存一个sessionid,下次再次请求服务器的时候,会把该sessionid携带上来,服务器根据sessionid在session库中获取用户的session数据,就能知道该用户到底是谁了,以及之前保存过的一些状态信息,这种专业术语叫做server side session。Django把session信息默认存储到数据库中,当然也可以存储到其他地方,比如缓存中,文件系统中等。存储在服务器中的数据会更加安全,不容易被窃取,但存储在服务器中也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的。
2. 将session数据加密,然后存储在cookie中,这种专业术语叫做client side session。flask 框架默认采用的就是这种方式,但是也可以替换成其他的形式。
134.cookie、session的工作机制的更多相关文章
- Session的工作机制详解和安全性问题(PHP实例讲解)
我们先简单的了解一些http的知识,从而理解该协议的无状态特性.然后,学习一些关于cookie的基本操作.最后,我会一步步阐述如何使用一些简单,高效的方法来提高你的php应用程序的安全性以及稳定行. ...
- 跟着百度学PHP[15]-会话控制session的工作机制
COOKIE和SESSION的两大区别: cookie是存储与客户端 session是存储与服务端 需要开启session的时候需要使用session_start开启,且session的开头不能拥有任 ...
- cookie,Session机制的本质,跨应用程序的session共享
目录:一.术语session二.HTTP协议与状态保持三.理解cookie机制四.理解session机制五.理解javax.servlet.http.HttpSession六.HttpSession常 ...
- cookie session 讲解
cookie: cookie的定义: cookie 是由web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息,并且在每次请求时会携带保存的数据去访问服务器,所以cookie有 ...
- [PHP] 05 - Cookie & Session
故事背景 同 http, html, REST API 一样属于基础性的知识内容. [Node.js] 07 - Html and Http [Node.js] 08 - Web Server and ...
- 1204 中间件以及cookie,session
目录 一 .cookie与session原理 1.cookie 操作 1.1 设置cookie set_cookie 1.2 获取cookie request.COOKIES.get('k1') 1. ...
- Django之cookie+session
前言 HTTP协议 是短连接.且状态的,所以在客户端向服务端发起请求后,服务端在响应头 加入cokie响应给浏览器,以此记录客户端状态: cook是来自服务端,保存在浏览器的键值对,主要应用于用户登录 ...
- [转载]Cookie/Session的机制与安全
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...
- Cookie/Session机制详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
随机推荐
- Metasploit学习笔记(一) Samba服务 usermap_script安全漏洞相关信息
一.Samba介绍 Samba是linux和unix系统上实现smb协议的一个免费软件,由客户机和服务器构成.SMB是一种在局域网上实现共享文件和打印机的协议.存在一个服务器,客户机通过该协议可以服务 ...
- Ubuntu14.04安装tomcat-9.0.1的教程
系统环境:Ubuntu14.04 Tomcat安装版本:Apache tomcat 9.0.1 下载地址:http://tomcat.apache.org/download-90.cgi 安装包:ap ...
- C#调用Windows API(示例:显示任务管理器里的程序名称)
作为初学者来说,在C#中使用API确是一件令人头疼的问题. 在使用API之前你必须知道如何在C#中使用结构.类型转换.安全/不安全代码,可控/不可控代码等许多知识. 在.Net Framework S ...
- codewars--js--Number of trailing zeros of N!
问题描述: Write a program that will calculate the number of trailing zeros in a factorial of a given num ...
- 图解Java设计模式之UML类图
图解Java设计模式之UML类图 3.1 UML基本介绍 UML图 UML类图 3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一 ...
- MySql学习-2. NavicatforMySQL 与 MySql的对接以及一些操作:
1.连接: 2.数据库的创建: 3.数据库中表的创建: 4.表的设计: 4.1 设计表: 4.2 增加数据(自动递增只是保证唯一值,即使数据删除了也是得前进):
- Elasticsearch必知必会的干货知识一:ES索引文档的CRUD
若在传统DBMS 关系型数据库中查询海量数据,特别是模糊查询,一般我们都是使用like %查询的值%,但这样会导致无法应用索引,从而形成全表扫描效率低下,即使是在有索引的字段精确值查找,面对海量数 ...
- 今日确定开源近两年来的EA程序
从2018年开始研究mt4的mql,在2019年主要设计了NinjaLoveFishEA这款网格程序,稳定运行了1年多,今年的伊朗被袭击,造成金价大幅上涨,-18%止损我离场后,决定不再继续研究了. ...
- windows 2008r2+php5.6.28搭建详细过程
安装IIS7 1.打开服务器管理器(开始-计算机-右键-管理-也可以打开),添加角色 直接下一步 勾选Web服务器(IIS),下一步,有个注意事项继续下一步(这里我就不截图了) 勾选ASP.NET会弹 ...
- (办公)记事本_Linux查找命令
参考谷粒学院的linux视频教程:http://www.gulixueyuan.com/course/300/task/7091/show 搜索命令 .whereis命令: 1.1.Linux whe ...