什么是cookie?

  cookie是服务器程序存储在浏览器本地硬盘的信息。

cookie有什么特点?

  cookie采用的是键值对结构存储,只不过键和值都是字符串类型。不同浏览器下cookie个数和长度我没有去特意研究,参考了网上资料不同浏览器中Cookies的长度。因为是保存在浏览器本地,所以用浏览器调试是可以看到cookie信息。不同的服务器程序(用域名区分)有着不同的cookie域,不会出现百度拿到淘宝cookie信息的情况。不同内核的浏览器使用的不是同一个cookie域,例如IE浏览器登录了淘宝,搜狗浏览器进入淘宝是登录状态(之所以说是登录状态而不只是说同样的cookie,待我写完session再说),谷歌浏览器则是未登录状态。因为IE和搜狗浏览器同是IE内核,谷歌浏览器不是。

cookie的生命周期是什么?

  cookie的生命周期由服务器程序在生成cookie信息时候决定,没有指定过期时间则在浏览器关闭时失效,有指定过期时间则在指定时间内就算浏览器关闭重启也一样有效。

谷歌浏览器下查看cookie:

什么是session?

  session是服务器程序记录在服务器端的会话消息。

session有什么特点?

  session也是采用键值对的结构存储,键为string类型,值为任意类型,用Map表示就是Map<String,Object>。session功能依赖于浏览器的cookie功能,只有cookie没被禁止的时候session才能正常使用。cookie里面有个键值对是关联sessionid的(基于Java开发的服务器对应的sessionid键名为JSESSIONID),通过sessionid来确定哪个session里面存放的是哪个浏览器用户的会话消息。

session的生命周期是什么?

  session从浏览器第一次访问服务器程序(访问静态资源不算)开始创建,当浏览器关闭时或者服务器设置的session时效过了时session过期。

如果光说cookie和session的概念、特点和生命周期,我感觉百度说的比我更详细。下面我讲讲cookie、session在开发中常用的用途,不论是在jsp、asp、PHP中都可以共用的思路(我猜测asp和php也有对应的实现),如果我只讲jsp,前面我就会讲得更细致更针对jsp。cookie配合session做的最多的还是自动登录,我来讲讲自动登录的实现机制。

半自动登录(每个B/S应用都少不了):

第一次访问服务器时cookie中记录下sessionid,创建了session,服务器判断session中有没有登录成功的标志(例如存放了用户id或者用户信息),如果是登录了转向需要登录权限的界面,如果没有登录则转向登录界面进行登录,登录成功了则把登录信息放入session中(例如放用户id或者用户信息)。在浏览器没有关闭或者session时效内的时候是无需重复登录的,所谓的退出登录不过是把session里面的登录标志清除掉或者让session失效等操作。之所以说他是半自动登录主要还是因为浏览器一关就需要重登。

全自动登录(部分网站为了解决浏览器关闭就需要重登而采取的措施):

  主要是利用cookie在浏览器关闭了还存在的原理来弥补session关闭了就不存在的缺陷。在session中没有已登录标志优先去查看cookie中是否存在账户信息而进行验证等流程,具体怎么判断登录根据需求来做就行了。

总结:

  cookie和session可以给用户带来方便,但是需要注意的是安全问题,不要明文存储用户的账号敏感信息存在cookie中,以及合理设置cookie和session的有效时长,还有就是session中不要存放过多东西,毕竟存放在服务器端需要占用挺多空间的,一次性的东西尽量放request里面。

转载于:https://blog.51cto.com/11537662/1931109

cookie与session以及他们的常规用途——web开发必须熟知的知识相关推荐

  1. Web后端学习笔记 Flask(9)cookie and session

    Flask_wtf除了可以做表单验证,模板渲染之外,还可以防御CSRF攻击.要了解CSRF攻击的原理,首先需要了解cookie和session的知识点. cookie:在网站中,HTTP请求是无状态的 ...

  2. Token和 Cookie 以及Session 的区分

    Token 一.我们先解释一下他的含义: 1.Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这 ...

  3. 爬虫-cookie与session的功能与用途

    cookie数据与session数据 请求时要不要带cookie和session 要看需求 测试,体验cookie存在和没有cookie的情况 没有cookie,登陆的状态就没有了 csdn登陆状态的 ...

  4. Cookie和Session的区别与联系

    Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Session的实现原理(重点) Session常用方法: Cookie 基本介绍 经典案例 ...

  5. Cookie与Session的区别

    本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示. cookie机制 ...

  6. cookie与session区别|详细版

    cookie与session区别|详细版,VMlogin浏览器支持cookie导入导出吗 Cookie: Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF R ...

  7. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

  8. Java web—Cookie与Session对象

    接着上篇的Servlet总结,本篇文章来总结下 Cookie 和 Session 一.会话介绍 1.什么是会话? 从打开浏览器,到访问页面,到最终关闭浏览器 ,整个过程就是一次会话 2.会话的特性: ...

  9. Cookie和Session的区别详解

    一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于才服务器端保持状态的 ...

最新文章

  1. C++ error LNK2019: 无法解析的外部符号 错误解决方案
  2. ERPLAB中文教程:高级EvenList选项
  3. python 操作ipynb文件笔记
  4. linux 进程(一)---基本概念
  5. php中的意外type字符串,关于php:解析错误:语法错误,意外’文本’(T_STRING),期待’,’或’;’...
  6. 【强推】10个有趣的Python程序
  7. 彻底解决pip下载pytorch慢的问题
  8. 清华山维EPS二次开发VBS基础篇
  9. python自制海龟时钟
  10. 一篇文章学会Yaml的语法超详细(建议收藏)
  11. 基于opencv的手指静脉识别(附源码)
  12. numpy模块基础篇
  13. c语言arg是什么函数,arg函数(arg辐角公式)
  14. html白色的斜线,面试官:如何使用 CSS 实现斜线效果?
  15. Prompt for Extraction? PAIE:Prompting Arguement Interaction for Event Argument Extraction
  16. 计算机课程打字教学,打字教程第1课 认识键盘
  17. XMind揭秘:汽车的世界
  18. OSG3.6.3_X64_Collada Dae插件VS2017详细编译步骤
  19. quartz暂停及恢复任务解决恢复时一咕噜把未执行的全补回来的问题
  20. 看看这些鲜为人知的宝藏Python数据科学包吧!

热门文章

  1. VB中的format格式化函数
  2. 刨根问底(二):从INode客户端看如何培养兴趣 (续)
  3. 网络产品用户体验优化系列[一]概要
  4. 关于router-link包含dom元素会出现Warnings while compiling.警告的问题!
  5. 利用JS实现 TABLE的分页
  6. ChemDraw是这样预测诺氟沙星NMR谱
  7. jekins 持续集成手记
  8. 一条空间不足报警的分析
  9. Linux Kobject
  10. 在$x_0$处全导数可逆的函数$f:\mathbf{R^n}\to\mathbf{R^n}$的一个性质