1.0 为什么需要session和cookie?

当用户在发送一个请求关得到返回信息之后,客户端与服务器端之间的网络连接就已经断开了,在下一个请求发送时,服务器无法确定这次请求和上次的请求是否来自同一个客户端。也就是说,服务器不能记住"记住"用户,这是hptp协议的限制。在web应用程序中,实际上是经常需要记住每次请求的。那么,如何让服务器知道不同的请求是否来自同一个客户端,就是状态管理问题出现了session和cookie。(简单说:就是因为http的无状态性,无法保存用户的信息,所以需要一些状态保存机制保存用户的信息)

2.0 那什么是cookie?什么是session?

cookie:中文名小型文字档案或小甜饼,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。定义于RFC2019.为网景公司的前雇员Lou Montulli 在1993年3月所发明。(摘自维基百科)

session:session也是用来存信息的,它存在服务器端,在初次设置session的时候,会在session池中实例化一个session对象,并以asp.net_sessionid的值作为key,同时会将key以cookie的形式存到客户端的内存中。通过asp.net_sessionid来取session的值。

3.0 关于cookie和session的部分用法

  3.1 cookie:

    3.1.1  实例化cookie对象:

      

HttpCookie cookie = new HttpCookie("uid", uid);

    3.1.2  告诉浏览器只有请求指定了路径下的页面 才将cookie发送给服务器,如果未指定默认就是 /

    

cookie.Path = "/P01cookiedemo/";

    3.1.3  设置了Expires 参数则表示告诉浏览器将cookie存入硬盘中

    

cookie.Expires = DateTime.Now.AddDays(3);

    3.1.4  设置了Domain,告诉浏览器只有请求www.c11.com 域名下的页面才将cookie发送给服务器

    

cookie.Domain = www.c11.com;

    3.1.5 将cookie添加到响应报文头中发送回浏览器保存

    

Response.Cookies.Add(cookie);

     3.1.6  获取浏览器通过请求报文头  发送给服务器的cookie 值的 写法,uid:为cookie的键,可以由程序员自己定义

    

if(Request.Cookies["uid"]!=null)
{
Request.Cookies["uid"].Value;
}

  3.2 Session

    3.2.1 在web.config中的 <system.web> 节点下添加以下代码 手动修改session的相关设置

    

<sessionState timeout="" cookieless="true"></sessionState> 

    3.2.2  注意:

    aspx编译完成以后会自动实现接口IRequiresSessionState,所以能够直接使用session,但是一般处理程序,需要程序员自己实现接口IRequiresSessionState ,才能够使用session对象。

4.0   session和cookie的区别

    4.1.1  cookie数据存放在客户的浏览器上,session数据放在服务器上。

    4.1.2  cookie不是很安全(虽然经过加密),他人可以分析存放在本地的cookie并进行cookie欺骗 考虑到安全应用当使用session。

    4.1.3  session 会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能。考虑到减轻服务器性能方面,应当使用cookie。

    4.1.4  单个cookie保存的数据不能4k ,很多浏览器都限制一个站点最多保存20个cookie

5.0 cookie和session 作用

  cookie用来保存一些不太重要的信息

  session用来保存用户的账号密码之类的重要信息

简述Seesion和Cookie的更多相关文章

  1. 深入浅出seesion和cookie

    session在计算机中,尤其是在网络应用中,称为"会话控制".session 对象存储特定用户会话所需的属性及配置信息.session跟踪是Web程序中常用的技术,用来跟踪用户的 ...

  2. [py]flask操作cookie&django的seesion和cookie机制

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

  3. 简述Session 、Cookie、cache 区别

    区别: 1.session是把数据保存在服务器上,每一个用户都有自己的session. 2.cookie是保存在客户端(也就是本机电脑). 3.cache是保存在服务器上,每个用户都可以访问的对象. ...

  4. Seesion和Cookie详解2

    转载来自: https://www.toutiao.com/a6693986851193094664/?tt_from=weixin&utm_campaign=client_share& ...

  5. 关于Cookie的有关内容

    1.首先谈谈http协议与状态保持. Http协议本身是无状态的,这与http协议本来的目的是相符的,客户端只需要简单的向服务器发出请求操作,然后服务器对请求作出响应.无论客户端还是服务器都没有必要记 ...

  6. django之模型层(model)--查询补充及cookie

    已经连续写了好几篇django的模型层(model)增删改查的随笔了,没篇大篇幅都是查询相关的操作,可以看出查询在数据的操作中是多么的重要,而本篇最后再补充一点关于关于查询的一些方法,模型层基本的操作 ...

  7. [py][mx]django的cookie和session操作-7天免登录

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

  8. 服务器对cookie信息加密

    通过redis的seesion对cookie信息加密  --- 防止cookie记录的用户信息泄露 import tornado.ioloop import tornado.web from data ...

  9. 《52讲轻松搞定网络爬虫》读书笔记 - Session和Cookie

    为什么要用Session和Cookie? 简单一句话,因为Session和Cookie可以记录用户状态信息 嘶..这到底啥意思呢? 背景一:动态网页的出现 什么是静态网页 含义:一个网页的内容是HTM ...

随机推荐

  1. 《A First Course in Probability》-chaper4-离散型随机变量-负二项分布

    基于我们最为熟悉的离散型分布——二项分布,我们能够衍生出很多别的分布列,对于之前介绍过的几何分布,我们赋予其的含义是:某个事件成功的概率是p,在n次独立重复实验中恰好成功一次的概率是多少.顺着这层含义 ...

  2. 简单的FIRST集演示程序

    /* * 该程序用于计算某个非终结符的 FIRST 集合 * RexfieldVon * 2013年6月29日19:53:45 * 2013年7月3日22:01:57 修改 GetFIRST 例程以简 ...

  3. Seek the Name, Seek the Fame - POJ 2752(next运用)

    题目大意:小猫是非常有名气的,所以很多父母都来找它给孩子取名字,因为找的人比较多,小猫为了摆脱这个无聊的工作,于是它发明了一种取名字的办法,它把孩子父母的名字合在一起,然后从这个名字里面找一个前缀,并 ...

  4. java mysql模板

    Java mysql的模版,很优雅.同时也兼顾了性能PreparedStatement和安全性(防SQL注入)两方面.对于比较简单的数据库操作基本满足要求. package dao; import j ...

  5. git 绑定github

    1.创建一个名为git文件夹 2.git init 3.ssh-keygen -t rsa -C "邮箱地址" 4.根据上一步当中默认的文件夹找到id_rsa.pub 复制其中的内 ...

  6. lucene4.5近实时搜索

    近实时搜索就是他能打开一个IndexWriter快速搜索索引变更的内容,而不必关闭writer,或者向writer提交,这个功能是在2.9版本以后引入的,在以前没有这个功能时,必须调用writer的c ...

  7. DataGridView绑定BindingList<T>带数据排序的类

    本文章转载:http://yuyingying1986.blog.hexun.com/30905610_d.html DataGridView绑定List<T>类时候,不会自动的进行排序. ...

  8. Configuration所有配置简介

    // 内存缓存的设置选项 (最大图片宽度,最大图片高度) 默认当前屏幕分辨率                // .memoryCacheExtraOptions(480, 800) // 硬盘缓存的 ...

  9. Web日程管理FullCalendar

    fullcalendar是一款jQuery日程管理控件,提供了丰富的属性设置和方法调用,官网下载地址http://fullcalendar.io/download,眼下最新版本号是2.3.2. 仅仅要 ...

  10. SEO为什么越来越难?

    不是很长的折腾seo该,无脑想如何很长的头发外链,一方面,没有花费的时间SEO在,另一方面SEO越来越难,的另一个方面,也SEO特征,不可控和不可预测性,致使我们花了非常多的情况下,SEO大部分时间都 ...