浅谈session与cookie之间的联系

Session 与Cookie的一个简介:

为什么要对这两个机制进行特别的讲解呢?很重要的一点就是在网络请求中 HTTP 是无状态的协议,谁也不认识谁,所以当你想要实现对用户的追踪,就必须要用到这两个机制。这两者都有一个共同点 会话

例如:当你在网上购物付款时。由于HTTP是无状态的。你并不知道是那个用户进行付款操作。或者当你登录QQ的时候,你就会拥有一个 session 的,但当你关闭这个之后,session 数据也会丢失,这时就到cookie 登场和展现它的威力了。

登录后给给它分配一个 Session 会话的空间。至于如何识别用户这时候就要cookie,当session 第一次发送请求数据时,就会在cookie 中记录这个数据,当你下次访问的时候,会在cookie那里获取信息在返回给Session,

两者的工作原理图:

Session与Cookie可以说都是用记录客户状态的机制,但它们却有不同

一、 cookie: 数据是保存在客户端的。

作用:

1、在HTTP 协议下,服务器或者脚本维护客户工作站上上信息的一种方式

2、是WEB服务器保存在客户浏览器上的大小文件;

3、注意:它是有保存时间限制的。超过时间规定就会被进行清除。

 

二、session数据是保存在服务端的。

工作原理:客户端访问服务器的时候: 服务器把客户端信息以某种形式记录在服务器上:这个就是Session,下次客户再进行访问时只需要在Session中查找这个客户状态就可以了。

还有:我们会发现当我们登录某个账号时:当你下次次再登录时只需要输入密码,账号会自动显示在上面;这些功能的实现方法的保存在cookie上的。
比如最近我在做案例时,刚好遇到这个这登录记住的操作,也是我实现数据记住不了纠结老半天的代码,却不想这么容易:

比如我的用户与密码操作:

我通过获取session中的用户信息

string strUserNuber= pwUser.UserNuber; 用户

string strPassword = pwuser.Password; 密码

再通过cookie记住密码 保存cookie

cookie[“UserNuber”] = strUserNuber

cookie[“Password”] = strPassword

再通过ViewBag 进行数据的返回

ViewBag.UserNuber = UserNuber

ViewBag.Password = Password;

这里还可以用viewData,什么是viewdata和 viewBag呢

知识补充:什么是viewBag和viewData,在这里我还想补充一下。viewData是特殊字典类的名称,我们可以对其进行赋值
例如:viewData[“old”]=”20”
而viewBag是对viewData的动态封装, 使其运用起来更加方便 赋值方式为:viewBag.old = “20”
两者的区别:viewBag代替viewData使用虽有快速便捷。但是viewBag访问的必须是一个有效的标志符。其次不能作为一个参数来进行传递个方法;否则会出现错误。有错误就有解决的办法。

解决方法:

1、 将 ViewBag.Name 替换为
ViewData[“Name”];

2、 就是换成一个具体的参数类型。

记住:页面获取的只获取他们的value 值。并不是它的name值,要注意细节呀

结束语:以上就是我今天要说的内容;不知道那哪里有没有错误;或者代码讲解过程有误,如果有,请进行留言评论帮助我改!因为刚接触我也不是完全能够描述的。

在此先谢谢了哈!!

posted on 2019-03-31 22:54  java浪里小白龙  阅读(685)  评论(0编辑  收藏  举报

导航