【Web入门系列】初探会话管理-Cookie技术

特点

会话数据保存在浏览器客户端。

Cookie技术核心

1、构造Cookie对象

  Cookie(String name, String value)

2、设置cookie

  #设置cookie的有效访问路径

  void setPath(String uri)

  #设置cookie的有效时间

  void setMaxAge(int expiry) :

  @设置cookie的值

  void setValue(String value) :

3、发送cookie到浏览器端保存

  void response.addCookie(Cookie cookie)

4、服务器接收cookie

  Cookie[] request.getCookies()

Cookie原理

1、服务器创建cookie对象,把会话数据存储到cookie对象中;2、服务器发送cookie信息到浏览器;3、浏览器得到服务器发送的cookie,然后保存在浏览器端。

4、浏览器在下次访问服务器时,会带着cookie信息;5、服务器接收到浏览器带来的cookie信息。

public class CookieServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 1、创建Cookie对象
        Cookie cookie = new Cookie("name","ss");

        // 2、把cookie数据发送到浏览器(通过响应头发送: set-cookie名称)
        //response.setHeader("set-cookie", cookie.getName()+"="+cookie.getValue());
        //推荐使用这种方法,避免手动发送cookie信息
        response.addCookie(cookie);
    }
}
public class GetCookieServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 3、接收浏览器发送的cookie信息
        Cookie[] cookies = request.getCookies();
        if (cookies != null){
            for (Cookie cookie : cookies){
                String name = cookie.getName();
                String value = cookie.getValue();
                System.out.println(name+"="+value);
            }
        }
    }
}

Cookie细节

public class CookieServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 1、创建Cookie对象
        Cookie cookie = new Cookie("name","ss");

        /**
         * 1)设置cookie的有效路径。默认情况:有效路径在当前web应用下。 /myweb
         */
        //cookie.setPath("/myweb");

        /**
         * 2)设置cookie的有效时间
         * 正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。
         * 负整数:表示cookie数据保存浏览器的内存中,浏览器关闭cookie数据丢失。
         * 零:表示删除同名的cookie数据
         */
        //cookie.setMaxAge(20);
        //cookie.setMaxAge(-1);
        //cookie1.setMaxAge(0);

        //2.把cookie数据发送到浏览器(通过响应头发送: set-cookie名称)
        //response.setHeader("set-cookie", cookie.getName()+"="+cookie.getValue());
        //推荐使用这种方法,避免手动发送cookie信息
        response.addCookie(cookie);
    }
}

注意:Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,

每个Cookie的大小限制为4KB。

原文地址:https://www.cnblogs.com/ysdrzp/p/9879745.html

时间: 2024-08-26 00:11:28

【Web入门系列】初探会话管理-Cookie技术的相关文章

2014-07-09 Java Web的学习(5)-----会话管理(Cookie和Session)

1.什么是会话 会话,牛津词典对其的解释是进行某活动连续的一段时间.从不同的层面看待会话,它有着类似但不全然相同的含义.比如,在web应用的用户看来,他打开浏览器访问一个电子商务网站,登录.并完成购物直到关闭浏览器,这是一个会话.而在web应用的开发者开来,用户登录时我需要创建一个数据结构以存储用户的登录信息,这个结构也叫做会话.因此在谈论会话的时候要注意上下文环境.而本文谈论的是一种基于HTTP协议的用以增强web应用能力的机制或者说一种方案,它不是单指某种特定的动态页面技术,而这种能力就是保

SAP接口编程 之 JCo3.0系列(04) : 会话管理

在SAP接口编程之 NCo3.0系列(06) : 会话管理 这篇文章中,对会话管理的相关知识点已经说得很详细了,请参考.现在用JCo3.0来实现. 1. JCoContext 如果SAP中多个函数需要在一个session中运行,需要JCoContext来提供保证.如果在同一个线程中,大体模式这样: JCoContext.begin(sapDestination); fm1.execute(sapDestination); fm2.execute(sapDestination); JCoConte

会话管理——cookie和session技术

1 Cookie技术 1.1 Cookie技术特点: 会话数据保存在浏览器客户端 1.2 Cookie的API Cookie类: 保存会话数据 1)创建Cookie对象,用于保存会话数据 new Cookie(java.lang.String name, java.lang.String value) 2)设置Cookie对象 void setPath(java.lang.String uri)  设置cookie有效路径 void setMaxAge(int expiry)     设置coo

Web安全开发指南--会话管理

1.会话管理 3.1.会话管理安全规则 1 避免在URL携带session id. 2 使用SSL加密通道来传输cookie. 3 避免在错误信息和调试日志中记录session id. 4 使用框架自带的或业界公认的安全函数来生成session id(参考附录11.4). 5 开发或引入无状态的模块(比如shipin7 nodejs和视频留言模块)时,应与web模块的session机制结合,防止越权或无授权攻击. 6 当使用加密通道SSL/TLS传输cookie时,为其设置“secure”属性.

web安全学习-攻击会话管理

先来说一下什么是会话管理?在绝大多数web应用程序中,会话管理机制是一个基本的安全组件.它帮助应用程序从大量不同的请求中确认特定的用户,并处理它收集的关于用户与应用程序交互状态的数据.会话管理在应用程序执行登陆功能时显得特别重要,因为它可在用户通过请求提交他们的证书后,持续向应用程序保证任何用户身份的真实性. 由于会话管理机制所发挥的关键作用,它们成为针对应用程序的恶意攻击的主要目标.如果攻击者能够破坏应用程序的会话管理,他就能轻易避开其实施的验证机制,不需要用户证书即可伪装成其他应用程序用户.

【Web入门系列】初探HttpServletResponse

public class ResponseServlet extends HttpServlet { /** * 1.tomcat服务器把请求信息封装到HttpServletRequest对象,且把响应信息封装到HttpServletResponse * 2.tomcat服务器调用doGet方法,传入request,和response对象 * 3.通过response对象改变响应信息 * 4.tomcat服务器把response对象的内容转换成响应格式内容,再发送给浏览器解析 * @param

会话管理cookie&session

1.会话技术:从浏览器开始访问服务器,到关闭浏览器,这期间发生了许多次请求和响应,这个过程就叫做一次会话.2.问题:如何在一次会话中保存会话相关的数据.3.Cookie:将会话相关的数据保存到浏览器中,并且在每次访问服务器时都带过去.(浏览器端技术)    3.1javax.servlet.http.Cookie,可以直接利用此类的构造方法创建一个Cookie,创建出来的Cookie需要设置一个名称和值    3.2response身上具有addCookie的方法,可以将创建出来的组织成响应消息

Web安全测试指南--会话管理

会话复杂度: 编号 Web_ Sess_01 用例名称 会话复杂度测试 用例描述 测试目标系统产生的session id是否具备足够的复杂度. 严重级别 高 前置条件 1.  目标系统使用登录会话机制. 2.  目标web应用可访问,业务正常运行. 3.  已安装http拦截代理(burp.fiddler或webscarab均可). 执行步骤 1.  开启burp,设置对http请求进行拦截,并在浏览器中配置代理. 2.  打开目标系统的登录页面,使用正确的用户名和密码提交登录,比如: POST

Servlet会话管理——Cookie会话跟踪

Cookie是一块可以嵌入到HTTP请求和响应中的数据.典型情况下,Web服务器将Cookie值嵌入到响应的Header,而浏览器则在其以后的请求中都将携带同样的Cookie.Cookie的信息中可以有一部分用来存储会话ID,这个ID被服务器用来将某些HTTP请求绑定在会话中.Cookie由浏览器保存在客户端,通常保存为一个文本文件.Cookie还含有一些其他属性,如可选的注释.版本号及最长生存周期等. 由于统一客户端对服务器的请求都会携带Cookie,因此可以通过在Cookie中添加与会话相关