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

posted @ 2017-02-15 14:32  子信风蓝蓝  阅读(277)  评论(0编辑  收藏  举报