zoukankan      html  css  js  c++  java
  • cookie和session(1)

    cookie和session

    1.cookie产生

    识别用户 
    HTTP是无状态协议,这就回出现这种现象:当你登录一个页面,然后转到登录网站的另一个页面,服务器无法认识到。或者说两次的访问,服务器不能认识到是同一个客户端的访问,这就让你重复登录,所以产生了cookie。 
    cookie:第一次访问一个服务器,不携带cookie,这时服务器在响应(response)下行HTTP报文中,命令浏览器携带cookie信息;浏览器再访问同一个域的时候,将把cookie信息携带到请求(request)上行HTTP请求中,从而实现了HTTP模拟有了状态。

    2.cookie特点

    • cookie是不加密的

    • cookie是可以被篡改和攻击

    • cookie大小受到限制

    3.node使用

    //使用cookie必须要使用cookie-parser中间件

    var cookieParser = require('cookie-parser');

    app.use(cookieParser());

    express中的cookie: res负责设置cookie, req负责识别cookie。 
    cookie用来制作记录用户的一些信息,如购买历史、猜你喜欢、访问量等

    现在看session

    4.session产生

    由于cookie明文等一些不足所以产生了session 
    session依赖cookie,就是利用cookie,实现的“会话”,因此当cookie被禁用,session也无法使用。 
    session比cookie不一样在哪里呢? session会下发一个秘钥(cookie)(乱码),客户端每次访问都携带这个秘钥,那么服务器如果发现这个秘钥吻合,就能够显示这个用户曾经保存的信息。 
    任何语言中,session的使用,是“机理透明”的,也就是让你感觉不到这事儿和cookie有关

    5.session特点和使用

    session是加密的

    var session = reqiure("express-session");

    app.use(session({

           ..一些配置

    }));    

    app.get("/",function(req,res){

       console.log(req.sission.login);

    });    

    app.get("/login",function(req,res){

            req.session.login = "1";

    });

    都是req对象 
    Session存在于服务器的内存中,如果服务器重启就会丢失session同时需要重新登录

    6.cookie和session不同

    • cookie数据存放在客户的浏览器上;session数据放在服务器缓存中。

    • cookie是明文,不安全,别人利用cookie可以被篡改和攻击;而session存放服务器缓存中并且加密的,其他用户看不到。

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

    • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie;session的密钥(cookie),可以对应可以对应无限大的数据

  • 相关阅读:
    WebView
    dpdpipxptem单位长度理解
    js跨域访问
    JS&CSS压缩工具YUICompressor
    IIS7.5站点配置
    Jscript运行时错误:没有权限
    控制HttpContext为null
    JSON数组成员反序列化
    Linux 系统默认运行级别设定
    环境搭建常用工具
  • 原文地址:https://www.cnblogs.com/wyliunan/p/7452815.html
Copyright © 2011-2022 走看看