zoukankan      html  css  js  c++  java
  • 简述Seesion和Cookie

    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="5" 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用来保存用户的账号密码之类的重要信息

    作者:Cboii

    本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。

    由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。

    在wordpress安装、主题、插件以及开发上面有问题的,可以加入qq群:1140958614(Wp建站每日学习/交流群)进行学习和提问

    如果需要建站服务,可以直接联系我的qq:185369045

  • 相关阅读:
    零基础读懂视频播放器控制原理: ffplay 播放器源代码分析
    JPEG压缩原理与DCT离散余弦变换——有实际的数据演示
    图像压缩编码和解码原理——阐述了DCT变换的实质
    C++与C语言容易忽视的几个差异
    VLC目录结构介绍
    轻量便携流媒体播放器框架设计-2
    轻量便携流媒体播放器框架设计-1
    rtmp和rtsp的区别和适用范围
    vlc源码分析(六) 调用OpenMAX硬解码H.265
    vlc源码分析(五) 流媒体的音视频同步
  • 原文地址:https://www.cnblogs.com/chenboyi081/p/3838498.html
Copyright © 2011-2022 走看看