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. trident介绍

    (一)理论基础 很多其它理论以后再补充,或者參考书籍 1.trident是什么? Trident is a high-level abstraction for doing realtime comp ...

  2. VS2010 OpenCL运行环境配置

    1.安装AMD GPU显卡驱动(安装后重启) 13-12_win7_win8_64_dd_ccc_whql.exe 2.安装AMD OpenCL SDK(安装后重启) AMD-APP-SDK-v2.9 ...

  3. C#中的yield

    一.C#中yield关键字用于遍历循环中,yield语句的两种形式 yield return用于返回IEnumerable<T>, yield break用于终止循环遍历. 二.yield ...

  4. Node.js:Web模块、文件系统

    一.web模块 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务.它只需支持HTTP协议.HTML文档格式及URL,与客户端的网络 ...

  5. Python+Django+SAE系列教程13-----MySQL记录的添\删\改

    建立了数据库后,我们就来做一个简单的表(person_classroom)的加入.删除.改动的操作. 首先我们建立一个加入的页面的模板Classroom_Add.html(加入的表单)并把它放在Bid ...

  6. UVA 10652 Board Wrapping 计算几何

    多边形凸包.. .. Board Wrapping Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu ...

  7. GameCenter 使用指南

    原地址:http://www.cocoachina.com/gamedev/misc/2010/1022/2229.html GameCenter 为单机游戏为主的 iPhone 游戏平台引入了社会化 ...

  8. Js 的test方法

    Js 的test()方法 test() 方法用于检测一个字符串是否匹配某个模式. 定义和用法test() 方法用于检测一个字符串是否匹配某个模式. 如果字符串中有匹配的值返回 true ,否则返回 f ...

  9. Android 再按一次退出应用的代码

    private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (key ...

  10. om.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException

    Error:Execution failed for task ':app:dexDebug'.> com.android.ide.common.process.ProcessException ...