相信你肯定经常听说cookie和Session,那你有没有好好了解这两个的区别呢?其实,不整理之前,我也是一脸懵。

为什么需要cookie和session呢?---因为Http是无状态的,web开发中常有一些操作需要有状态,比如:你要给关注博客园里面大神,点赞这个功能是需要有“登录”状态的,如果你已经登录过博客园了,客户端又存有这个状态,你就可以免登陆点赞了。

Cookie:

  一个常见的场景,登录一个网页,页面会提示你是否保存用户名和密码,当你点击的时候,就会将用户名和密码自动保存到cookie,当你下次再打开这个页面时,用户名和密码会从cookie取出来,自动填充到登录的用户名和密码,你只需点击登录即可。

  cookie的工作原理:一门客户端技术,由服务器生成返回给浏览器保存,以键值对的形式保存在浏览器的客户端,每个cookie都有名称、值、过期时间。

  cookie的特点:是一门客户端缓存技术、数据通过服务器生成,客户端(浏览器)保存、键值对、数据过期机制:设置expire的值

  下图:保存在浏览器的cookie:用户名

       

Session:会话

  服务端会话技术,当用户登录了系统,服务端的web容器就会创建一个会话,此会话中可以保存用户的信息,也是以键值对返回到浏览器,大部分系统都是使用session做鉴权(权限鉴定),如果用户没有登录,就不能访问系统的其他页面

  特点:服务端会话缓存技术;由服务端的web容器创建,保存在服务端;以键值对形式保存;默认会话时间30分钟

  场景实例:当你想登录一个系统的主页时,url地址输入主页的地址,此时的地址会重定向到登录页面,登录成功之后,会在响应头生成一个set-cookie:存放的就是session会话编号,这个session会话编号是服务器返回的,这个session会话编号保存用户登录的信息。

  步骤一:输入首页的地址,响应302重定向到登录页面了

  

  步骤一:登录成功后,会在响应头找到set-cookie,里面存了一个JESSIONID=值(这个就是会话ID)

  

  步骤三:通过响应头 set-cookie:JESSIONID=值,告诉浏览器将这个数据缓存到客户端的cookie里面

  

  步骤四:登录完成后再访问系统中的任何页面都是有没有问题的,因为后面每次请求都会带上浏览器里cookie里面的这个“JSESSIONID”的值过去,可以在响应完成后,看页面的请求头,会发现有这个会话ID,请求时,会将这个session会话编号发到服务器

  

  步骤五:当服务器请求,会将cookie里的会话编号和服务器的进行匹配,判断是不是同一个Sessio会话,会话中有登录用户的信息,判断这个请求是一个登录用户发出的,就会放行这个请求

参考文章:https://www.cnblogs.com/nickjiang/p/9148136.html

cookie、session的区别的更多相关文章

  1. Python Web学习笔记之Cookie,Session,Token区别

    一.Cookie,Session,Token简介 # 这三者都解决了HTTP协议无状态的问题 session ID or session token is a piece of data that i ...

  2. JavaWeb -cookie&session&application

    cookie&session&application总结 Cookie[key-value](不是内置对象必须new): 1. Cookie 是由服务端生成的,在发送给客户端保存 2. ...

  3. Cookie和Session的区别

    前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题.不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题 ...

  4. cookie 和session 的区别详解

    这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...

  5. Cookie和Session的区别详解

    本文引用自:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一 ...

  6. cookie 和session 的区别

    假如我填好了淘宝的用户名密码,点击登录,浏览器客户端像服务器端发送请求,这时服务器端看这个用户是第一次登陆,session会让客户端这个浏览器生成个cookie,并给cookie一个session i ...

  7. Cookie与Session的区别-总结很好的文章

    Cookie与Session的区别-总结很好的文章 本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对 ...

  8. 【转】cookie和session的区别

    原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com ************** 本文版权归原作者和博客园共有,欢迎转载,转载请保留该申明 ** ...

  9. 认识cookie与session的区别与应用

    通常我们所说的浏览器自动保存密码,下次不用登陆,网页换皮肤,用户引导,提示一次就不再出现的内容,大部分通过cookie或者session来实现的,在这次制作用户引导中,本人就用到了cookie的内容, ...

  10. JavaWeb之Cookie和Session的区别

    Cookie和Session的区别 一.cookie机制和session机制的区别 ********************************************************** ...

随机推荐

  1. Codeforces 1111 简要题解

    文章目录 A题 B题 C题 D题 E题 传送门 A题 传送门 题意简述:把262626个英文字母分成两类A,BA,BA,B,AAA类字符可以转成AAA类字符,BBB类字符可以转成BBB类字符,问给出的 ...

  2. 2018.11.07 NOIP模拟 异或(数位dp)

    传送门 对于每个二进制位单独考虑贡献. 然后对于两种情况分别统计. 对于第二种要用类似数位dpdpdp的方法来计算贡献. 代码

  3. 牛客训练三:处女座的比赛(hash打表)

    题目链接:传送门 思路:由于MOD只有9983大小,所以四位小写字母的字符串组合有26+26^2+26^3+26^4=475254种组合. 所以只要每次枚举出从1到475254中的hash值对应的字符 ...

  4. go语言判断末尾不同的长字符串的方法

    判断两种末尾不同的长字符串,在使用正则表达式的基础上,进一步利用好字符串的方法,最后成功对问题进行解决. package utils import ( "io/ioutil" &q ...

  5. mysql学习之路_字段类型与属性

    回顾 数据库基本知识:关系型数据库与非关系型数据库 关系型数据库:安全(磁盘) 非关系型数据库:高效(内存) 关系型数据库:建立在关系模型上的数据库, 数据结构:二维表(浪费空间) 数据库操作指令:s ...

  6. HDU 5663 Hillan and the girl (莫比乌斯反演 + 分块)

    题意:给定n,m,求,其中F(x)=0,,如果x是完全平方数,否则是1. 析: 由于按照题意的F,不好筛选,所以我们反过来,F(x),x是平方数,就是1,否则是0. 这个是可以预处理出来的,可以用筛选 ...

  7. 如何在jsp和html页面上获取当前时间

    要想在JSP页面中获得当前时间并显示出来,首先得导入相关的Java包,然后创建Date对象. <%@page import="java.text.SimpleDateFormat,ja ...

  8. 《mysql必知必会》学习_第11章_20180801_欢

    第11章:使用数据处理函数. P69 文本处理函数,upper()函数把文本变成大写字体. select vend_name,upper(vend_name) as vend_name_upcase ...

  9. 对java高级程序员有益的十本书

    英文原文:http://www.programcreek.com/2013/08/top-books-for-advanced-level-java-developers/ java语言是当今最受欢迎 ...

  10. 3.Django视图

    视图 视图接受Web请求并且返回Web响应 视图就是一个python函数,被定义在views.py中 响应可以是一张网页的HTML内容,一个重定向,一个404错误等等 响应处理过程如下图: URLco ...