Cookie和Session详解
1.什么是Cookie
Cookie是存放在客户端浏览器的Name/Value键值对,访问服务器时,会自动传递给服务器。
Cookie的生成方式有两种,服务器写入,客户端写入。

2.Cookie的分类
会话Cookie:保存在浏览器内存中,关闭浏览器,Cookie便被销毁了。
普通Cookie:保存在硬盘上,设置了过期时间,过期后销毁。

3.Cookie的特点
http协议是无状态的,即每次请求间独立,不记录每次请求参数信息。
Cookie可以在同一域名的不同页面间传递信息
Cookie会传递给服务器,不管这些参数服务器是否需要。
cookie是和域名对应的,不同域名间的cookie不能相互访问。

4.Cookie的典型应用
很多网站登录时,都有记住密码功能,实际上是把登录用户信息,写入cookie,这样每次登录不需要重新输入,
判断Cookie值存在,则直接登录。
这里有个疑问,能否在cookie中增加用户信息,伪造成登录状态?这里涉及到cookie欺骗的问题,直接在客户端浏览器是无法修改的,
因为cookie只允许对应的域名访问,修改。

5.什么是Session
与Cookie不同,Cookie存放在客户端浏览器或硬盘,而Session存放在服务器端。
客户端浏览器第一次访问服务端时,服务端会返回一个唯一的ID(Sessionid),给客户端,来作为这次客户端和服务端连接会话的唯一标志。
这个Sessionid会被客户端以Cookie的方式存放在浏览器的内存中,当浏览器关闭时,这次会话就结束了,客户端Sessionid值销毁了。
再次访问,会产生一个新的Sessionid。服务端旧的Session并不随客户端Sessionid变化,会一直存在,当到达有效期以后,服务端旧的Session才会销毁。

6.Session的特点,以及和Cookie的区别
Session是放在服务端的,减少了客户端数据的传输。
Session较Cookie来说,不存在Cookie欺骗,相对更加安全。
Session放在服务端,当访问较多,会比较占用服务器的性能,此时应考虑使用Cookie
重要信息放在Session中,普通信息放Cookie
Session和Cookie都可以用于登录验证,对Session来说,当浏览器关闭或者Session失效后,再次访问Sessionid会变更,因此需要重新登录;而Cookie在设置的有效期结束后,需要重新登录。

7.sessionStorage,localStorage和Cookie的区别
sessionStorage,localStorage,Cookie都放在客户端浏览器,区别在于
sessionStorage,localStorage存放的参数,不会主动传递给服务器端,解决了无用参数传递的问题。
sessionStorage和localStorage比较,sessionStorage存放在浏览器内存,关闭浏览器后就销毁了;localStorage存放在硬盘,到达有效期后销毁。

cookie,session,localStage,sessionStage区别的更多相关文章

  1. Django2.2 会话技术cookie session token的区别以及实例介绍

    一.区别: 本人见解:使用自定义数据项进行加密,作为唯一身份识别,登陆时写入cookie(session基于这个).在显示相关数据 1.cookie 属于客户端会话技术(数据存储在客户端) 默认的Co ...

  2. cookie session localstorage sessionStorage区别

    cookie:http://www.cnblogs.com/Darren_code/archive/2011/11/24/Cookie.html 重要特点: 1.cookie 有大小设置,有过期时间设 ...

  3. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  4. Java cookie和session介绍与区别

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

  5. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  6. Cookie和Session简介与区别

    1.Cookie和Session简介与区别 在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 ...

  7. cookie机制和session机制的区别(面试题)

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

  8. POPTEST老李分享session,cookie的安全性以及区别 1

    POPTEST老李分享session,cookie的安全性以及区别   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程 ...

  9. 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

随机推荐

  1. Run Redis On Windows

    If you go to the current version and open up the bin > release folder, you'll get a ZIP file cont ...

  2. Android 4.4 KitKat升级率已经接近18%(2014-07-09 07:29)

    腾讯数码讯(编 译:张秀梅)按照惯例, 每个月的第一个星期的星期一谷歌都会发布最新一期Android版本分布图.从去年十月末谷歌发布Android 4.4 KitKat以来,截止到目前为止Androi ...

  3. matlab在图像中画长方形(框)

    function [state,result]=draw_rect(data,pointAll,windSize,showOrNot) % 函数调用:[state,result]=draw_rect( ...

  4. [转] 菜鸟手脱VMP,附上脱壳过程和自己写的脚本,可跨平台

    转载:http://www.52pojie.cn/thread-467703-1-1.html 工作需要要脱一个VMP壳,我是一个从来没接触过脱壳的人.瞬间那种心情遇到的人应该都知道!没办法硬着头皮找 ...

  5. go语言基础之defer延迟调用

    1.defer作用 关键字 defer ⽤于延迟一个函数或者方法(或者当前所创建的匿名函数)的执行.注意,defer语句只能出现在函数或方法的内部. 运行场景: defer语句经常被用于处理成对的操作 ...

  6. PHP的错误处理方式(开发和上线)

    对于PHP开发人员来说,一旦某个产品投入使用.应该马上将 display_errors选项关闭.以免由于这些错误所透露的路径.数据库连接.数据表等信息而遭到黑客攻击. 可是.不论什么一个产品在投入使用 ...

  7. 【Scala】Scala技术栈

    快速了解Scala技术栈 我无可救药地成为了Scala的超级粉丝.在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为一个巨大的黑洞,吸引力使我不得不飞向它,以至于开始背离Java.固然Java ...

  8. Android Studio中mac上面的安装

    Android Studio中mac上面的安装 学习了:https://blog.csdn.net/xianrenli38/article/details/79347170 http://www.an ...

  9. BI项目简单备份策略

    在项目的开发中,备份是一个很重要的操作和良好的开发习惯,下面我们就针对BI相关项目的备份说一下备份策略 前端:Cognos 后端:SSIS+View+Procedure 服务器A装了Cognos内容库 ...

  10. STL栈的应用之表达式求值

    #include<iostream> #include<cstring> #include<cstdio> #include<stack> using ...