cookie和session的区别异同
1、用于保存页面信息:如自动登录,记住用户名
2、对于同一个网站只有一套cookie,它是以域名为单位的,一个域名就是一套,数量大小有限4k-10k,同时会具有过期时间
3、JS中通过document.cookie进行调用
a、设置:在cookie中利用document.cookie=”user=ni;expires=Date;Path=path;HttpOnly;等”,通过此方法依次设置一个值,赋值时不会进行覆盖而是添加到之前值得末尾,但是同名的参数则会将其进行覆盖,有多个值需要设置时利用该形式多次赋值,指定过期时间的cookie是存储在本地的,没有指定时为session Cookie会话结束后就会将cookie删除掉。如果设置了domain和path则只有在指定的域下面的路径的子部分可以访问设置这些 cookie。
b、读取cookie:读取时要注意读取的值得形式是:a=1, b=2, c=3每个变量之间用逗号加空格的形式隔开,不会带有后面的参数属性值,所以获取时要利用split函数。
c 、删除cookie时只用将expires设置为-1即可。
Var a=setDate(new date()+day) day可以为任意值表示将当前时间加上指定天数后的日期,该方法会自动的按照正常日历的方式进行加天数。如:当前时间为2016-05-02,day为30时则a的值为:2016-06-1。当day很大时也是同样的道理往前推。
4、通过http请求资源时会携带cookie的值(在IE678,Safari中跨域请求时不能携带设置有过期时间的cookie),但是所有的游览器不允许跨域访问。
5、通过设置HttpOnly(只有发送http请求时才会发送cookie的值,JS不能直接获取到cookie)可以防止XSS中的cookie劫持
cookie的缺陷是非常明显的
1. 数据大小:作为存储容器,cookie的大小限制在4KB左右这是非常坑爹的,尤其对于现在复杂的业务逻辑需求,4KB的容量除了存储一些配置字段还简单单值信息,对于绝大部分开发者来说真的不知指望什么了。
2. 安全性问题:由于在HTTP请求中的cookie是明文传递的(HTTPS不是),带来的安全性问题还是很大的。
3. 网络负担:我们知道cookie会被附加在每个HTTP请求中,在HttpRequest 和HttpResponse的header中都是要被传输的,所以无形中增加了一些不必要的流量损失。
Cookie 是保存在客户端的,session是保存在服务器端的,在项目中使用cookie时要注意设置cookie的过期时间和path,特别是path用于指定该目录下的所有文件均可以访问设置的cookie值。Cookie就是一个拼接的字符串,一次可以设置一个key value以及过期时间等。
Session是用于保存当前的用户登录信息的,存在服务器端,由于http协议的无状态性,无法知道当前用户是否已经处于等陆状态,所以需要借助cookie来保存当前会话状态中的登录信息,将session的值以sessionID的形式存在cookie中,当发送http请求时cookie会发送到服务器端,通过sessionID的值来判断用户是否处于登录状态。当然用户可以禁用cookie,此时则需要利用URL地址重写,即将用户的session信息写到URL中
cookie和session的区别异同的更多相关文章
- cookie和session的区别及在Django中应用
Django中Cookie和session应用 什么是cookie? cookie是客户端浏览器上的一个文件,以键值对进行保存,类似于字典的 {'key' : 'value'} ,与服务器端没有关系, ...
- Cookie和Session的区别
前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,就需要我们自己去解决这个问题.不然有些情况下即使是同一个网站我们每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题 ...
- cookie 和session 的区别详解
这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪 ...
- Cookie和Session的区别详解
本文引用自:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一 ...
- cookie 和session 的区别
假如我填好了淘宝的用户名密码,点击登录,浏览器客户端像服务器端发送请求,这时服务器端看这个用户是第一次登陆,session会让客户端这个浏览器生成个cookie,并给cookie一个session i ...
- Cookie与Session的区别-总结很好的文章
Cookie与Session的区别-总结很好的文章 本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对 ...
- 【转】cookie和session的区别
原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com ************** 本文版权归原作者和博客园共有,欢迎转载,转载请保留该申明 ** ...
- 认识cookie与session的区别与应用
通常我们所说的浏览器自动保存密码,下次不用登陆,网页换皮肤,用户引导,提示一次就不再出现的内容,大部分通过cookie或者session来实现的,在这次制作用户引导中,本人就用到了cookie的内容, ...
- JavaWeb之Cookie和Session的区别
Cookie和Session的区别 一.cookie机制和session机制的区别 ********************************************************** ...
随机推荐
- lua和c的亲密接触
介绍 lua和c的亲密接触,靠的是一个虚拟栈.lua通过这个虚拟栈来实现和c之间值的互传.栈上的每一个元素是一个lua值(nil,number,string...). 当lua调用c函数的时候,这个函 ...
- 为什么每个浏览器User-Agent都是Mozilla?真相原来是这样!
转载自简明现代魔法http://www.nowamagic.net/librarys/veda/detail/2576 故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克) ...
- swift -- 单例
方式一: (类似OC) class SingletonDispatch{ class var shareInstance : SingletonDispatch { //结构体 struct Stat ...
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- javascript继承--原型链的 继承
作者的话:原型链是JavaScript中相当重要的一个知识点,这里我使用了函数结构图,来帮助我更好的理解 /* 原型链继承方式: 通过改变一个对象的原型对象的指向来继承另一个对象 原理: 我们知道,一 ...
- (15)IO流之File
File类用封装了一个文件夹或者文件的所有属性. File类的构造方法: File(String pathname) 指定文件或者文件夹的路径创建一个File文件 File(File parent, ...
- (4)Object对象的几个常用方法
Object对象是java中对象的始祖,其有一些方法是经常需要我们来改写的: toString方法 该方法是Object的方法,Object的这的方法返回的是对象的文件结构加上对象的hashcode, ...
- oracle 实例启动报错(ORA-01078: failure in processing system parameters )
在启动Oracle数据库时报错,如下: [oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Productio ...
- C++ 头文件系列(string)----分析string初始化内存模型
测大小 这里我们比较4种版本的basic_string模版类,分别是:string, wstring, u16string, u32string. 虽然他们是不同的字符串类型,但是其sizeof的结果 ...
- QT Creator 快速入门教程 读书笔记(二)
一 窗口部件 基础窗口部件QWidget类是所有用户界面对象的基类,窗口和控件都是直接或间接继承自 QWidget,下面我们来看一个很简单的例子: 窗口部件(Widget)简称部件,是QT中建立界面的 ...