我们在面试的时候,时常会被问到Cookie和Session的区别,对于初学者来说,有时候会混淆这两个内置对象。下面就我自己的理解,对这2个内置对象进行剖析。

1、Session对象存在Web服务器端,Cookie对象存在用户的客户端(主要是Web浏览器,比如你的搜狗浏览器,谷歌浏览器等)

用户客户端无法拿到Session的值,但Cookie就不一样,Cookie是以一种文本的形式存储在浏览器中的,通过浏览器的一些Web调试工具,我们可以轻易的看到Cookie中的值。下面我们就通过谷歌浏览器的自带调试工具来查看下百度首页打开的时候会有哪些Cookie信息。

首先谷歌浏览器打开百度首页,然后按下你电脑的F12键即可调出调试界面。如下图,切换到Appliation页签界面,可以看到左下侧有个Cookie菜单,点击后,右侧出现的即为当前页面的所含有的Cookie信息。在列表中可以看到Cookie的键名、Cookie值以及过期时间等。

2、数据安全性:Session存储的数据比较安全,Cookie因为存储在用户浏览器本地,无法保证安全性。

因此一些机密的数据一定不能使用Cookie进行存储,比如用户的密码、身份证号等关键信息一定不可存放在Cookie,容易被他人窃取。

3、Cookie的存储时间可以比Session长很多,当然这个也看开发人员怎么设定,Cookie存储在客户浏览器端可以设置1天、2天或者更长的有效期。但Session一般在客户最后一次链接访问后2小时内即会失效,再次访问就需要重新建立Session链接,这也是为何你登录一些网站后,长时间不操作,再次操作要求你重新登录的原因。

4、Cookie还有下面这个特点,一个浏览器下同一个域名只能保存一份Cookie键值对。

具体举栗子:比如某个管理系统的网站在登陆成功后,会将用户名写入到浏览器Cookie中。如果张三打开了浏览器登陆这个管理系统,那么写入的Cookie值就是Cookie["name"]="张三"。张三登陆成功后,又新打开了个页签,登陆了李四的账号,那这时候在切回张三的页面,刷新网页,你看到的Cookie值将会是李四,同时页面显示的内容也是李四的内容。后者覆盖了前者。
  针对上述这个问题,有些浏览器可以通过打开子窗口方式解决了(重新双击浏览器图标打开新的浏览器窗口),注意是非打开子页签。

最后,附上我的ASP.NET学习群,欢迎各位同行入群指导交流。技术群:【ASP.NET技术社区】872894940

更多文章可以关注博主个人站点:IT技术小屋

内置对象Cookie和Session有何不同【常见面试题】的更多相关文章

  1. 6.19-response(响应),session(会话技术,服务器端技术) 内置对象,application(内置对象),pageContext (内置对象),cookie(客户端技术)

    一.response(响应) 页面重定向 response.sendRedirect(""); 转发: request.getRequestDispatcher("&qu ...

  2. JSP的内置对象application、session、request、page的作用域

    1.application内置对象的类型名称为ServletContext. 2.session内置对象的类型名称为HttpSession. 3.application作用域:对应整个应用上下文. a ...

  3. Webform 内置对象2(Session、Application)、Repeater的Command操作

    内置对象: 1.Session:跟Cookies一样用来存储用户数据,但保存位置不同,保存在服务器内存上 每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的 S ...

  4. session和application内置对象

    一.Session内置对象 分析得知request内置对象中的属性只是在当次请求中有效,经过客户端跳转之后就无效,因为客户端跳转属于第二个请求,也就是说request只代表当次请求的对象,如果要让客户 ...

  5. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  6. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  7. day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

    day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件 ...

  8. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  9. asp.net内置对象session和cookie

    1.各个机器的session对象不同,不同浏览器之间不通用(换个浏览器,是个新的session). 2.session状态对象起始于网页打开,终止于网页关闭,生命周期有限. 3.关闭浏览器/超时的情况 ...

随机推荐

  1. 构建具有用户身份认证的 Ionic 应用

    序言:本文主要介绍了使用 Ionic 和 Cordova 开发混合应用时如何添加用户身份认证.教程简易,对于 Ionic 入门学习有一定帮助.因为文章是去年发表,所以教程内关于 Okta 的一些使用步 ...

  2. Python_doc文件写入SQLite数据库

    #docx文档题库包含很多段,每段一个题目,格式为:问题.(答案) #数据库datase.db中tiku表包含kechengmingcheng.zhanngji.timu.daan四个字段 impor ...

  3. Java 使用BigDecimal类处理高精度计算

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的 ...

  4. expdb和impdb使用方法

    一  关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项:EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具 ...

  5. linux独有的sendfile系统调用--“零拷贝,高效”

    参考:http://blog.csdn.net/caianye/article/details/7576198 如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰 ...

  6. 【手记】小心在where中使用NEWID()的大坑

    这个表达式: --把GUID弄成正整数,然后取模 是随机返回0.1.2这三个数,不可能返回其它东西,但是如果把它用在where里面,就会发生很神奇的事情,比如这个查询: --创建一个只有1列3行的表, ...

  7. 拿到6个重磅offer的大神,超详细面试经验总结

    本人是国内某财经院校的小本,学校不算很有名,也没有很好的硬件条件,但是很幸运的在这样的就业大环境里拿了6个OFFER,其中包括一些股份制商业银行的总行,4大国有商业银行的省行,以及国内最一流国企的省公 ...

  8. python爬虫的重定向问题

    重定向问题 在使用python爬虫的过程中难免会遇到很多301,302的问题.他们出现时,很大程度的影响到我们的爬虫速度和信息的准确性.下面针对不同的模块给出不同的解决方案. 使用requests模块 ...

  9. requests+selenium==requestium模块介绍

    有时,你可能会在网上实现一些自动化操作.比如抓取网站,进行应用测试,或在网上填表,但又不想使用API,这时自动化就变得很必要.Python提供了非常优秀的Requests库可以辅助进行这些操作.可惜, ...

  10. python 产生token及token验证

    1.前言 最近在做微信公众号开发在进行网页授权时,微信需要用户自己在授权url中带上一个类似token的state的参数,以防止跨站攻击.在经过再三思考之后,自己试着实现一个产生token和验证tok ...