相信你肯定经常听说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. Bagging和Boosting的区别

    转:http://www.cnblogs.com/liuwu265/p/4690486.html Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的 ...

  2. RAW转换成RGB

    clc; clear; close all; [filename,pathname]=uigetfile({'*.*','All Files (*.*)'},'Pick a file'); file ...

  3. 20155205 2016-2017-2《Java程序设计》课程总结

    20155205 2016-2017-2<Java程序设计>课程总结 目录 一.每周作业链接汇总 二.实验报告链接汇总 三.博客中的经验与收获 - 自认为写得最好一篇博客是?为什么? - ...

  4. Gitolite 权限控制

    官网 http://gitolite.com/gitolite/index.html 安装配置 http://gitolite.com/gitolite/install/ 傻瓜安装教程 http:// ...

  5. JS库汇总[重要]

    库名称  说明 附加说明 URI 一款js 操作URL的插件 功能十分强大.可以增加 .修改.删除.参数   1.Animate.css 2.Hover.css 3.jQuery 4.WebUploa ...

  6. 安装BouncyCastle

    对于Windows而言 将bcprov-jdk16-146.jar 复制到C:\Program Files\Java\jre6\lib\ext和C:\jdk1.6.0\jre\lib\ext目录下: ...

  7. 笔记:CSS hack的学习与了解…

    更新时间:2015.05.12 兼容范围: IE:6.0+,FireFox:2.0+,Opera 10.0+,Sarari 3.0+,Chrome 参考资料: 各游览器常用兼容标记一览表: 标记  I ...

  8. Kotlin, Android的Swift

    Kotlin, Android的Swift 苹果已经用Swift代替Objective-C,一种古老的语言,来进行iOS的开发了.明显Android开发也有这个趋势. 虽然现在已经可以选择Scala或 ...

  9. How to transfer developer profile to one mac to another mac

    Export developer profile from old mac. In the Xcode Organizer, select your team in the Teams section ...

  10. kepware http接口 swift

    读取某变量的值 import Foundation let headers = [ "Connection": "keep-alive", "Cach ...