相信你肯定经常听说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. 2019.01.23 hdu3377 Plan(轮廓线dp)

    传送门 题意简述:给一个n*m的带权矩阵,求从左上角走到右下角的最大分数,每个格子只能经过最多一次,n,m≤9n,m\le9n,m≤9. 思路: 考虑轮廓线dpdpdp,但这道题并没有出现回路的限制因 ...

  2. 2018.11.17 codechef PRIMEDST(点分治+fft)

    传送门 fftfftfft一眼题(其实最先想到的是nttnttntt,wawawa了几次之后发现模数不够大果断弃疗写fftfftfft) 我们点分治统计答案的个数. 考虑现在已经统计出了到当前点的所有 ...

  3. 通过html文件生成PDF文件

    /// <summary> /// 获取html内容,转成PDF(注册) /// </summary> public void DownloadPDFByHTML(string ...

  4. Application-identifier entitlement does not match问题的解决

    以下是一个老外的回答: This happened to me after installing a build from TestFlight and overwriting it with the ...

  5. Verilog 99题之001-009

    001. 画出CMOS反相器的电路原理图. 衬底的连接问题.PMOS衬底接电源,NMOS衬底接地 002. 反相器的速度与哪些因素有关?什么是转换时间(transition time)和传播延迟(pr ...

  6. curl工具介绍和常用命令

    curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.Linux发行版中,并且有DOS和Win32.Win64的移植版本.curl是一个利用URL规则在命令行下工作的文 ...

  7. JVM虚拟机---本地接口(我还不太会)

    转载http://www.newhua.com/2008/0328/33542_2.shtml Java本地接口(Java Native Interface (JNI))允许运行在Java虚拟机(Ja ...

  8. hdu5016

    题意:给定一个n个点的图,这个图是一棵树,然后有些点建立了集市.并且没有集市的地方去集市一定是去最近的,如果距离相同,那么则去标号最小的..现在你还能在建一个集市,问建完这个集市最多有多少个点来这里. ...

  9. python3使用ip地址代理

    第一种IP地址代理方式from urllib import request if __name__ == "__main__": # 访问网址 url = 'http://www. ...

  10. 纯净得只剩下字的访问IP查询API

    纯净得只剩下字的访问IP查询API 实用资源 / 2018-02-26 / 3 条评论 看到一个好玩的,就随手收藏一下,本API作用:获取用户真实IP,而获取用户IP常见的坑有两个,开发支付的时候也需 ...