zoukankan      html  css  js  c++  java
  • Cookie and Session

    Cookie

    1.Cookie的作用

    HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。所以通过Cookie 技术在请求和响应报文中写入Cookie信息来控制客户端的状态。

    2.浏览器与服务器交互---Cookie

    浏览器向服务器发起请求,服务器端收到请求后会发送一个响应报文,其中有一个叫做Set-Cookie 的首部字段信息会通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。
    服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

    3.解决Cookie不安全的问题

    可以为Cookie内容加密或者在HTTPS,SSL安全的协议中使用Cookie

    4.那在一个G浏览器上为什么某客网站不能同时登录两个用户呢?

    因为G浏览器的Cookie中有一个字段是某客网站的用户账号,所以当第二个用户登录时,原来的字段值被覆盖,原来的用户被新用户挤下去了,所以某一时刻只能有一个用户登录某客网站

    Session

    1.Session简介

    Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器向客户端浏览器发送一 个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session 依据该Cookie来识别是否为同一用户。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
    如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。
    为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。

    2.如果客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?

    Java Web提供了另一种解决方案:URL地址重写。
    URL地址重写的原理是将该用户Session的id信息重写 到URL地址中。HttpServletResponse类提供了encodeURL(Stringurl)实现URL地址重写,该方法会自动判断客户端是否支持Cookie。如果客户端支持Cookie,会将URL原封不动地输出来。如果客户端不支持Cookie,则会将用户Session的id重写到URL中

  • 相关阅读:
    GUI搞定
    “你说,会有来世吗?”少女露出悲伤的笑容,低声说道,“不管过了多少年,我都会一直在这里等你。如果可以的话,下辈子再和你一起,一起写GUI吧。”
    每个负责写GUI的女孩上辈子都是折翼天使
    更新了XmlParser类
    COCOS2D-X学习笔记(一)-----Node类的学习
    SwipeRefreshLayout的简要说明及使用demo
    Android的图片压缩并上传
    ActionBarSherlock的学习笔记(四) ------------ ActionBarSherlock中的搜索及SearchView的使用
    ActionBarSherlock的学习笔记(三) ------------ ActionBarSherlock中的overflow及item的点击事件
    ActionBarSherlock的学习笔记(二) ------------ 创建ActionBarSherlock
  • 原文地址:https://www.cnblogs.com/Hangtutu/p/8015398.html
Copyright © 2011-2022 走看看