• cookie和session区别与联系


    一、前言

    HTTP协议是一种无状态协议,一次请求-响应完成,客户端与服务器端的连接就会断开,再次请求需要建立新的连接。这就意味着服务器无法从连接上跟踪会话

    二、cookie和session

    1、什么是cookie?

    cookie实际上是一小段的文本信息。cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。

    1 HttpCookie cookie = new HttpCookie("MyCook");//初使化并设置Cookie的名称
    2 DateTime dt = DateTime.Now;
    3 TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//过期时间为1分钟
    4 cookie.Expires = dt.Add(ts);//设置过期时间
    5 cookie.Values.Add("userid", "value");
    6 cookie.Values.Add("userid2", "value2");
    7 Response.AppendCookie(cookie);

    2、什么是session?

    Session是存在服务器的一种键值对结构存储用户数据。一般情况下,服务器会在一定时间内保存这个 Session,过了时间限制,就会销毁这个Session。

    三、在会话跟踪中,通常采取两种机制cookie机制和session机制

    1、cookie机制:

    (1)客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个cookie。客户端会把cookie保存起来。

    (2) 当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器检查该cookie,以此来辨认用户状态。服务器还可以根据需要修改cookie的内容。

    2、session机制:

    (1)当浏览器第一次发送请求时,服务器自动生成了一个session和一个session id用来唯一标识这个session,并将其通过响应发送到浏览器。

    (2)当浏览器第二次发送请求,会将前一次服务器响应中的session id放在请求中一并发送到服务器上,服务器从请求中提取出session id,并和保存的所有session id进行对比,找到这个用户对应的session。

    四、保存session id的3种方式方式

    1、cookie:用cookie保存的,用户提交页面时,将session id提交到服务器端,来存取Session数据。但cookie可能会被浏览器禁用。

    2、重写URL:但是它的缺点是会动态生成每个 URL 来为页面分配一个 session 会话 ID。

    3、隐藏表单字段,但是点击常规的超文本链接(<A HREF...>)不会导致表单提交,因此隐藏的表单字段也不支持常规的 session 会话跟踪。

    五、cookie和session的区别

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

    2、cookie不是很安全,别人可以分析存放在本地的cookie,考虑到安全应当使用session。

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

    4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。


    扫码关注不迷路!!!

     

  • 相关阅读:
    页脚保持在未满屏页面的底部
    jquery tab选项卡
    Unity 物体在屏幕内跟随鼠标移动
    Unity 中一些图形学知识
    Unity 简单的第三人称视角
    Unity 一个简单的鼠标跟随
    Unity常用操作代码
    3D渲染管线
    教你如何利用threejs对3D模型皮肤进行DIY
    从Maya中把模型搬运至网页的过程
  • 原文地址:https://www.cnblogs.com/leirocks/p/9135594.html
Copyright © 2020-2023  润新知