相信你肯定经常听说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. 2018.10.24 NOIP模拟 小 C 的序列(链表+数论)

    传送门 考虑到a[l],gcd(a[l],a[l+1]),gcd(a[l],a[l+1],a[l+2])....gcd(a[l]...a[r])a[l],gcd(a[l],a[l+1]),gcd(a[ ...

  2. 安卓逆向学习---初始APK、Dalvik字节码以及Smali

    参考链接:https://www.52pojie.cn/thread-395689-1-1.html res目录下资源文件在编译时会自动生成索引文件(R.java ), asset目录下的资源文件无需 ...

  3. hdu 1540(线段树区间合并)

    题目链接:传送门 参考文章:传送门 题意:n个数字初始连在一条线上,有三种操作, D x表示x号被摧毁: R 表示恢复剩下的通路 Q表示查询标号为x所在的串的最长长度. 思路:线段树的区间合并. #i ...

  4. java socket之传输实体类对象

    一.TCP编程     TCP协议是面向连接的.可靠地.有序的,以字节流的方式发送数据.java实现TCP通信依靠2个类:客户端的Socket类和服务器端的ServerSocket类. 基于TCP通信 ...

  5. 4-具体学习git--分支

    图形的方式显示日志:git log --oneline --graph 两种方式建立分支: 1.git branch dev,建立一个dev的分支 git branch 查看分支有哪些,星号在当前分支 ...

  6. servlet 解决乱码问题

    对于servlet大家应该都很熟悉了,今天再复习一下,如果有哪里写的不好或不对的地点希望广大的网友批评指正.今天只讨论get和post两w种方式,他们之间有很多的不同点,所以解决编码的方式也会不一样, ...

  7. Oracle中B-TREE索引的深入理解(转载)

    索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样.在理解索引时,可以想象一本书, ...

  8. Swift: 用Alamofire做http请求,用ObjectMapper解析JSON

    跟不上时代的人突然间走在了时代的前列,果然有别样的风景.首先鄙视一下AFNetworking.这个东西实在太难用了.不想封装都不行,要不写一大堆代码. NSURL *URL = [NSURL URLW ...

  9. php获取跳转后的真实链接

    网站的跳转链接经常为本站链接加上一些参数来跳转,如何使用php获取跳转后的链接呢? php代码如下: <?php // echo get_redirect_url('http://www.osc ...

  10. 14.关键字final

    在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了.final是java的关键字,它所表示的是“这部分是无法修改的”.不想被改变的原因有两个:效率.设计.使用到fi ...