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机制的区别 ********************************************************** ...
随机推荐
- javascript的字符串判断方法
Javascript中判断符号主要有:==.!=.===.!== ==.!=这两个符号在判断之前会先对变量类型进行转换,如果类型相同会再比较值; ===.!==这是直接判断两个变量的类型,如果类型不一 ...
- Vue 2.0初学后个人总结及分享
摘要:最近在上海找工作,发现Vue前景还不错,于是就打算先学习一下(之前了解过,但是一直没提到日程上)这篇随笔当是为了自己学习之后,做一个小的阶段性总结.希望本文的内容对于刚开始接触vue的朋友们有点 ...
- maven新建的项目,不自动引入依赖包
1.检查repository的目录是不是纯英文. 2.重新下载一次repository. 如果解决了问题,那么原因就是前面在加载repository的时候,因为断网导致了下载的包有误,无法被ecl ...
- 1297: [SCOI2009]迷路
1297: [SCOI2009]迷路 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 652 Solved: 442[Submit][Status] ...
- java初级开发一系列的工具安装配置
最近压力很大,刚刚帮朋友安装了一整套环境,按照印象写下此篇记录(没有图解),一是用来释放压力,二来希望可以帮到各位. 一.首先,Eclipse的安装,下载eclipse压缩包,一般为200~300M, ...
- 用一个jsp实现对数据库发访问
<%@ page language="java" import="java.util.*" pageEncoding="gb2312" ...
- C# 使用Process调用外部程序中所遇到的参数问题
在使用Process.Start 调用外部程序时,除了程序的地址之外,是可以传递参数的,Process.Start 也有多个重载: // // 摘要: // 启动由包含进程启动信息(例如,要启动的进程 ...
- 关于Tarjan(1)
众所周知, 求有向图的强连通分量的Tarjan算法是以其发明者Robert Tarjan命名的.Robert Tarjan还发明了求双连通分量的Tarjan算法,以及求最近公共祖先(LCA)的离线Ta ...
- 纯Jquery前端分页
---恢复内容开始--- 由于之前自己做过jquery分页,就是调用jni接口时,只能用前台分页解决显示问题.最近看到有人提这样的问题:一个请求传过来上万个数据怎么办?于是萌生了写这篇博客的想法. 效 ...
- linux vi hjkl由来
很远原因来自历史 I was reading about vim the other day and found out why it used hjkl keys as arrow keys. Wh ...