• cookie 和 session


    • Cookie

        HTTP协议是无状态的,不对之前发生过的请求和响应的状态进行管理。也就是无法根据之前的状态进行本次请求的处理。

        假设要求登录认证的Web页面本身无法进行状态的管理(不记录已登录的状态),那么每次跳转新页面就要再次登录,或者要在每次请求报文中附加参数来管理登录状态。保留无状态这个特征又要同时解决类似问题,于是引入了Cookie技术Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。

        Cookie会根据从服务器端发送的响应报文内的Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。

        服务器端发现客户端发送过来的Cookie后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

    首先是第一个问题,HTTP请求是无状态的,我怎么知道谁是谁? 
    解:让用户每次访问的时候告诉你它叫什么,怎么告诉?url,form/post body,cookie 

    然后是第二个问题,用户访问的时候说他自己是张三,他骗你怎么办? 
    解:在服务器端保存张三的信息,给他一个id,让他下次用id访问。id保存在url,form/post body,cookie中。这叫做session 

    现在是第三个问题,用户提交了一笔订单,你怎么保证他是在你的订单页面提交的?(referer可能是一个办法) 
    解:在你订单页面中放入一个加密的信息,只有真正打开了订单页才能知道,提交的时候将这个信息返回回来。这个东西,可以被叫做token

  • 相关阅读:
    html5 video标签如何禁止视频下载
    Redis源代码-数据结构Adlist双端列表
    HTML5分析实战WebSockets基本介绍
    Chromium on Android: Android在系统Chromium为了实现主消息循环分析
    Android AIDL使用特定的解释
    [LeetCode]Maximum Product Subarray
    OC省字典的数组摘要集
    CocoaChina 第四个测试
    Java在的时候,类定义HashSet初始化方法
    WSHPSRS-匹克选择列表生成器-SRS(R12.2.3)
  • 原文地址:https://www.cnblogs.com/chengchengla1990/p/6401323.html
Copyright © 2020-2023  润新知