`

深入学习Cookie和Session

web 
阅读更多

      出自 (深入 分析JavaWeb技术内幕 ,并向大家安利这本书,作者:许令波)  

      session和 cookie简单来说就是HTTP的配置项,在servlet规范中只是对应了一个类而已;但是当我们的系统大到需要很多的cookie的时候,我们不得不考虑HTTP对cookie数量和大小的限制 ;session也会遇到这样的问题,当我们的一个应用系统有几百台服务器时,如何解决 session在 服务器之间的共享问题?还有一些安全问题,如cookie 被盗和cookie伪造等问题如何避免?

        session和cookie都是为了保持访问用户与后端服务器的交互状态,各有优缺点,然而 具有讽刺意味的是他们的优点和他们,例如,使用cookie来传递信息的时候,随着cookie个数的增多和访问量的增加,它占用的网络宽带也越来越大;而session的致命弱点是不容易在多台服务器之间共享,这也限制了session的使用。

 

      深入理解cookie          

      cookie的作用:通俗的来讲就是当一个用户通过http访问一个服务器时,这个服务器会将 一些Key/Value键值对返回给客户浏览器,并给这些数据加上一些限制条件,在条件符合时在这个用户下次访问的这个服务器的时候,数据又完整的被带回到服务器。更加通俗的例子就是:像你在去超市购物时,第一次给你办一张购物卡,在这个购物卡里 放一些个人信息,下次你再来这个超市的时候,直接刷卡就好了。

     当前的cookie有两个版本Version 0和Version 1,他们有两种审核制响应头的标识,分别是“Set-Cookie”和“Set-Cookie2”。这两个版本的属性项有些区别:

 


 

     以上这两个版本的Header头的标识符是不同的,我们常用的是Set-Cookie:userName= “haha”;Domain = "taoyongpan.xin",这是Version 0的形式。针对Set-Cookie2是这样设置的:Set-Cookie2:userName= “haha”;

Domain = "taoyongpan.xin";Max-Age = 1000。但是在JavaWeb的Servlet规范中并支持Set-Cookie2中的响应头,在实际应用中Set-Cookie2的一些 属性项却可以设置在Set-Cookie中,如这样的配置:Set-Cookie:userName=“haha”;Version = “1”;Domain = “taoyongpan.xin”;Max-Age = 1000。但是当我们用Servlet3.0规范来创建一个Cookie对象的时候,该Cookie即支持Version1也支持Version 0 ;

       但是我们创建Cookie的时候,要注意 以下几点:

1、所创建的Cookie的NAME不能和 Set-Cookie和Set-Cookie2 的属性项值一样,如果一样会抛出IllegalArgumentException异常。

2、所创建的Cookie的NAME和VALUE的值不能设置为ASSIC字符,如果 要使用中文,可以通过URLEncoder将其编码,否则会抛出IllegalArgumentException异常。

3、当NAME和VALUE的值出现一些TOKEN字符(如“\”、“,”等 )时,构建返回头会将该Cookie的Version自动设置为1;

4、当该Cookie的属性项中出现Version1的属性项的时候,构建HTTP响应头同样会将 Version设置为1.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

  • 大小: 519.4 KB
  • 大小: 840.1 KB
分享到:
评论

相关推荐

    day16_cookie&session源代码.zip

    在IT行业中,尤其是在Web开发领域,Cookie和Session是两种非常重要的技术,用于管理用户状态和保持会话。...通过学习这些源代码,你可以更好地理解Cookie和Session的工作原理,并在实际项目中灵活运用。

    Cookie与Session深入剖析图示

    在Web开发中,Cookie和Session是两种非常重要的用户身份验证和会话管理机制。...下面将对Cookie和Session进行深入剖析。...通过"Cookie与Session深入剖析图示"的学习,可以直观地了解两者的工作流程,加深理解。

    基于c#实现cookie和session的登陆技术

    本文将深入探讨如何在C#环境中,特别是在Visual Studio 2005环境下,利用Cookie和Session这两种常见的用户状态管理机制来实现登录功能。这两种技术都是Web开发中的核心概念,对于构建安全、高效的应用至关重要。 ...

    用java运用cookie和session

    本篇将深入探讨如何在Java中有效地运用Cookie和Session。 首先,我们来了解Cookie的基本概念。Cookie是由服务器发送到浏览器并存储在本地的一小块数据,它包含了特定的信息,如用户ID或会话ID。当用户访问网站时,...

    Cookie&Session;

    在Web开发中,Cookie和Session是两种非常重要的用户身份验证和会话管理技术。...下面将详细介绍Cookie和Session的工作原理、用途以及它们之间...通过深入学习和实践,我们可以更好地应对各种Web应用中的用户状态管理挑战。

    Cookie与Session机制

    【Cookie与Session机制】在Web开发中,会话跟踪是必不可少的技术,用于区分不同用户的操作。常见的会话跟踪手段有...在Session项目中,可以深入学习和实践这两种技术,理解它们的工作原理以及何时、如何使用它们。

    cookie+session实现的单点登录案例

    在这个案例中,我们将探讨如何利用Cookie和Session来实现SSO,同时结合第三方社交登录,如微博,来增强用户体验。 ### Cookie与Session的基本原理 1. **Cookie**: 是服务器发送到用户浏览器并存储的一小块数据,...

    基于Cookie的Session跨域.zip

    在Web开发中,Session和Cookie是两种常见的用户会话管理技术。它们被广泛应用于保持用户的登录状态,确保用户在访问不同页面时仍能保持个性化设置和数据连续性。本项目"基于Cookie的Session跨域"则关注如何在分布式...

    对session和cookie的一些理解

    标题中的“对session和cookie的一些理解”提示我们,这篇内容将涉及Web开发中两种重要的用户会话管理技术:Session和Cookie。在Web应用中,Session和Cookie被广泛用于跟踪用户的登录状态、购物车信息等,确保用户在...

    Cookie、Session学习笔记

    在Web开发中,Cookie和Session是两种非常重要的用户身份验证和会话管理技术。这篇学习笔记将深入探讨它们的工作原理、使用场景以及优缺点。 **Cookie** Cookie是一种在客户端(用户的浏览器)和服务器之间传递信息...

    flask、session、cookie解加密脚本

    本文将深入探讨`Flask`中的`session`和`cookie`,以及如何对它们进行解密。 首先,`session`和`cookie`都是用于跟踪用户状态的方法。`cookie`通常存储在用户的浏览器中,而`session`数据则保存在服务器端。`cookie`...

    day16_cookie&session.rar

    在Web开发中,Cookie和Session是两种非常重要的技术,用于管理用户会话状态。它们都是用来跟踪用户身份和保持...通过本次的"day16_cookie&session"学习,你可以更深入地理解这两种技术,并能够灵活运用到实际项目中去。

    flask-session-cookie-manager-master.zip

    首先,我们来深入理解session和cookie的概念。在Web应用中,用户认证通常依赖于session和cookie。cookie是服务器发送到用户浏览器并存储在本地的一小块数据,用于跟踪用户状态。而session则是一种在服务器端存储用户...

    学习application(session)(cookie)聊天室小例子

    在IT行业中,网络应用程序开发是不可或缺的一部分,而`Application`、`Session`和`Cookie`则是构建此类应用时经常会用到的关键概念。本教程将通过一个聊天室小例子,深入探讨这三个概念及其在ASP.NET中的具体应用。 ...

    cookie的使用,实用的demo

    在Web开发中,Cookie、Session和JSP是关键的组件,它们共同作用于用户会话管理,确保用户在浏览网站时能保持个性化体验。本文将深入探讨Cookie的使用,特别是如何在JSP中与Session结合使用,通过一个实用的Demo来...

    java Session cookie

    为了解决这个问题,Session和Cookie应运而生,而Session Cookie是其中的一种方式。 **什么是Cookie?** Cookie是由服务器端发送到客户端(浏览器)的一小段信息,存储在用户的本地设备上。当客户端发起新的请求时,...

    Java Web学习之Cookie和Session的深入理解

    "Java Web学习之Cookie和Session的深入理解" 以下是Java Web学习之Cookie和Session的相关知识点: 一、Cookie机制: * Cookie是保存在客户端的临时文件夹,用于保存用户状态信息。 * Cookie机制采用的是在客户端...

    javaWeb/java源码 介绍 登录注册功能以实现,包括Cookie和Session 使用内嵌式H2数据库 使用基本

    在本项目中,我们主要探讨的是一个基于JavaWeb的web应用程序,它实现了登录注册功能,并且结合了Cookie和Session管理用户会话。此外,项目采用了内嵌式H2数据库存储数据,前端则使用了基本的Vue.js框架来交互和展示...

    cookieAndSession.zip

    本文将深入探讨如何使用Node.js、Koa框架和Nunjucks模板引擎实现登录验证,并关注"cookieAndSession.zip"中涉及的关键知识点。 首先,我们需要了解Node.js中的HTTP服务器。在"server.js"文件中,开发者通常会创建一...

    session&cookie.zip

    - 参考视频:[BV1s4411z7zq](https://www.bilibili.com/video/BV1s4411z7zq) 提供了深入浅出的讲解,可以帮助你更直观地理解Session和Cookie的使用。 了解并熟练掌握Session和Cookie的使用,对于Web开发人员来说至...

Global site tag (gtag.js) - Google Analytics