浅析Cookie和Session

目录

定义:

      1、什么Cookie?

         创建Cookie:   

          读取Cookie值:

        2、什么是Session。

        创建Session

相同与不同

工作原理

        3.Cookie工作原理:

        4、Session工作原理(此原理图借鉴视频资料)

非常好的实例解析Cookie和Session的区别,作用


前言

         这两天刚刚接触新的词汇,在很浅的层次上做一个小小的总结,让自己加深一下印象,并且在总结过程中搜索更多相关的内容,丰富对于此知识点更广知识面的总结和理解。接下来就从定义、区别以及工作原理几方面进行一个小小的总结。

定义:

      1、什么Cookie?

          Cookie:这个词语很熟悉,英文“曲奇饼干”,今天在学习ASP.NET是有接触了一下。

           Cookie今天接触了一个关于Cookie的新的概念“客户端状态保持” 常用用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 ASP,您能够创建并取回 cookie 的值。     

             cookie:一小段文本,明文。存储在客户端的浏览器内存里面或者磁盘。cookie是跟网站相关,百度可以往客户端写cookie,sina也可写cookie,但是百度只能读取跟百度网站相关的cookie
cookie会随着请求网站一块发送到后台【如果请求百度的时候,那么就把百度的cookie放到请求报文里面去,然后发送到后台。】

           cookie可以设置一个Path来限制某个路径下面的页面才会把cookie发送到后台
比如:请求图片,请求一个css、js,为了提高性能,可以通过 path设置页面的所在路径,来控制cookie的发送。

          Cookie的域:浏览器往后台发送数据时候,要把cookie放到请求报文里面去,发送到后台。 如果请求是主域页面,子域的cookie是不会发送到后台的。如果子域想让请求主域页面的时候也一块发送到后台,设置当前Cookie的域为主域可以了。

          cookie是通过响应报文的方式写到前台。最终写入Cookie是通过响应报文头来的

         创建Cookie:   

namespace WebApp2._0._2020_02_25
{
    public partial class CookieDemo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //创建cookie的基本语法
            //Response.Cookies["cp1"].Value="itcast";
            //创建cookie并且制定过期时间
            Response.Cookies["cp2"].Value = "老虎";
            Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(3);
            //删除cookie(给过期时间一个已经过去的时间即可  )
            Response.Cookies["cp2"].Expires = DateTime.Now.AddDays(-1);

            //cookie跨域问题(域名)
           // Response.Cookies["cp3"].Value = "老鼠";
            //Response.Cookies["cp3"].Domain = "xxx.com";//设置为主域的方法
            //Response.Cookies["cp3"].Path = "/2020-02-25";//只访问此文件夹下的文件的时候请求报文带cookie的数据

            //Response.Cookies["cp3"].Expires = DateTime.Now.AddDays(7);
        }
    }
}

           读取Cookie值:

namespace WebApp2._0._2020_02_25
{
    public partial class CookieDemo2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //获取cookie的值
            if (Request.Cookies["cp2"]!=null)
            {
                //Response.Write(Request.Cookies["cp1"].Value);
                Response.Write(Request.Cookies["cp2"].Value);
            } 
        }
    }
}

CookieDemo和CookieDemo2报文中的Cookie值均为:

并且可以查询到延期时间为3天(今天26日):(通过查询报文可发现Cookie的过期时间为2月29日,正好3天)

                        更过关于Cookie的创建和读取等功能参考

        2、什么是Session。

        服务端的状态保持机制(cookie是存储在用户的电脑上:)可以将各种类型数据存储到Session,最终将这些数据存储到服务端的内存中。

   【在一般处理程序 中如果使用session必须实现的时候,需要实现System.Web.SessionState.IRequiresSessionState接口

        创建Session

namespace WebApp2._0._2020_02_26
{
    public partial class SessionDemo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //判断是否提交
            if (IsPostBack)
            {
                string name = Request.Form["txtName"];
                Session["userName"] = name;
                Response.Redirect("test.aspx");
            }
        }
    }
}

当提交之后,不关闭此网址的同时打开另一个网页,输入相同的网址,则显示结果一样,因为此时SessionID一样

当此页面关闭之后,再次打开此网址,可以发现此网页内容就会不见了:因为此时的SessionID发生了变化。【详见下面的运行原理图

                更多关于Session的属性、事件和方法参考

相同与不同

          1.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。

   注:为这个用户创建的Cookie的名称是aspsessionid。这个Cookie的唯一目的就是为每一个用户提供不同的身份认证。

          2.cookie和session的共同之处在于:cookie和session都是用来跟踪浏览器用户身份的会话方式。

          3.cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。 

工作原理

        3.Cookie工作原理:

      4、Session工作原理(此原理图借鉴视频资料)

参考链接:https://zhuanlan.zhihu.com/p/100460817

                   非常好的实例解析Cookie和Session的区别,作用

 

                              欢迎各位大神斧正和点赞哦!!!

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章