`

Cookie和Session

 
阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2367166

 

Cookie

Cookie可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些Cookie,如果Cookie很多,则无形地增加了客户端与服务端的数据传输量,而Session的出现正是为了解决这个问题。

 

Session

同一个客户每次和服务端交互时,不需要每次都传回所有的Cookie值,而是只要传回一个ID,这个ID是客户端第一次访问服务器时生成的,而且每个客户端是唯一的。这样每个客户端就有了一个唯一的ID,客户端只要传回这个ID就行了,这个ID通常是NAME为JSESSIONID的一个Cookie。

 

工作方式

Cookie和Session都可以跟踪客户端的访问记录,但是它们的工作方式显然是不同的。

  • Cookie通过把所有要保存的数据通过HTTP的头部从客户端传递到服务端,又从服务端再传回到客户端,所有的数据都存储在客户端的浏览器里,所以这些Cookie数据可以被访问到,甚至可以被修改,所以Cookie的安全性收到了很大的挑战。
  • Session的安全性要高很多,因为Session是将数据保存在服务端,只是通过Cookie传递一个SessionID而已,所以Session更适合存储用户隐私和重要的数据。

Cookie的安全问题

如果使用Cookie,可以很好地解决应用的分布式部署问题,大型互联网应用系统的一个应用有上百台机器,而且有很多不同的系统协同工作,由于Cookie是将值存储在客户端的浏览器,用户每次访问都会将最新的值带回给处理该请求的服务器,所以也就解决了同一个用户的请求可能不在同一台服务器处理而导致的Cookie不一致的问题,但是这种处理方式会带来很多其他问题

  • 客户端Cookie存储限制(Cookie个数的限制为50个, 总大小不超过4KB,超过限制会出现Cookie丢弃)
  • Cookie管理的混乱
  • Cookie的安全性

解决思路:分布式Session框架(结合Cookie和Session)

Session配置的统一管理

Cookie使用的监控和统一规范管理

Session存储的多元化

Session配置的动态修改

Session加密key的定期修改

充分的容灾机制,保持框架的使用稳定性

Session各种存储的监控和报警支持

Session框架的可扩展性,兼容更多的Session机制和wapSession

跨域名Session与Cookie如何共享的问题。现在同一个网站可能存在多个域名,如何将Session和Cookie在不同的域名之间共享是一个具有挑战性的问题(要实现两个域名下的Session同步,必须将同一个sessionID作为cookie写到两个域名下)。

 

Reference

深入分析Java Web技术内幕 许令波 著 

分享到:
评论

相关推荐

    c#实现cookie和session的登陆实例

    在Web开发中,Cookie和Session是两种常见的用户身份验证机制,尤其在C#编程语言中,它们被广泛用于实现登录功能。本实例将探讨如何在C#环境下利用Cookie和Session来处理用户登录状态。 首先,我们要理解Cookie和...

    javaweb之cookie和session的应用

    在Java Web开发中,Cookie和Session是两种非常重要的会话管理技术,它们主要用于跟踪和管理用户的状态信息。本文将深入探讨Cookie和Session的工作原理、应用场景以及如何在Java Web项目中进行有效利用。 **Cookie**...

    asp.net-c#写的一个cookie和session登陆小实验

    在这个"asp.net-c#写的一个cookie和session登陆小实验"中,我们主要关注的是两种在Web开发中常用的用户状态管理技术:Cookie和Session。 Cookie是服务器在客户端(用户浏览器)上存储的小型文本文件。它包含了特定...

    cookie 和 session 保存的异同

    Cookie 和 Session 是两种常见的用户身份验证和会话管理机制,它们在Web开发中扮演着重要角色,用于跟踪用户的在线状态和存储用户数据。下面将详细阐述它们的异同以及如何在集群环境中进行共享。 首先,Cookie 是一...

    cookie和session示例

    在Web开发中,Cookie和Session是两种非常重要的用户状态管理机制。它们被广泛用于跟踪用户的登录状态、个性化设置等,确保用户在不同页面之间切换时能够保持一致性体验。接下来,我们将详细探讨Cookie和Session的...

    经典收藏Cookie和Session

    ### 经典收藏:Cookie与Session机制详解 #### 一、Cookie机制与Session机制的区别 在Web开发中,为了维持用户的会话状态,通常有两种常用的技术:Cookie与Session。这两种技术各有特点,适用于不同的场景。 - **...

    cookie和session区别

    这是一份关于cookie和session的知识文档,有关于cookie是什么,图解,cookie对比session有哪些不好,session是什么图解

    cookie和session的学习文档

    cookie和session的学习文档

    JavaWeb基础-Cookie和Session的简单使用案例

    在JavaWeb开发中,Cookie和Session是两种常见的用户会话管理技术,用于在客户端和服务器之间传递信息。本文将深入探讨这两个概念,并通过一个简单的登录案例来阐述它们的使用。 首先,Cookie是服务器发送到用户...

    Servlet对Cookie和Session的管理源码实例

    Servlet不仅能够生成动态内容,还能进行会话管理,其中最常用的就是Cookie和Session。本文将深入探讨Servlet如何管理和利用这两种技术进行会话跟踪。 **Cookie管理** Cookie是一种客户端存储机制,用于在用户的...

    day16_cookie&session源代码.zip

    在IT行业中,尤其是在Web开发领域,Cookie和Session是两种非常重要的技术,用于管理用户状态和保持会话。这里我们深入探讨这两个概念以及它们在Java Web中的应用。 首先,Cookie是客户端存储的小型文本文件,由...

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

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

    JAVA之cookie与session

    ### JAVA之cookie与session #### 一、Cookie与Session的概念 **Cookie** 与 **Session** 是两种...在实际开发过程中,合理利用 Cookie 和 Session 的特性,可以有效提升用户体验,同时确保应用程序的安全性和稳定性。

    Cookie和Session的区别.txt

    介绍Cookie和Session的区别,适合做技术开发人员

    servlet+cookie和Session

    总结来说,Servlet是Web应用的基石,它结合HttpServletRequest和HttpServletResponse处理请求和响应,通过Cookie和Session管理会话,与JSP协同工作呈现动态内容。而Filter、文件上传和下载等特性则扩展了Servlet的...

    Cookie和Session并不难

    本文详细的描述了java开发中Session和Cookie的区别,更加有利于读者的理解

    用java运用cookie和session

    在Java Web开发中,Cookie和Session是两种常用的技术,用于管理客户端和服务器之间的会话状态。它们在实现用户登录状态保持、个性化设置保存等方面发挥着重要作用。本篇将深入探讨如何在Java中有效地运用Cookie和...

    cookie和session的运用

    **Cookie** 和 **Session** 是两种用于跟踪用户会话的技术,在Web开发中非常常见。它们的主要功能是帮助服务器识别用户并维持用户的登录状态等信息。 ##### 1. Cookie - **定义**: Cookie是一种小型的数据文件,...

    cookie和session完全讲解(精通必备)

    【Cookie和Session详解】 在Web开发中,Cookie和Session是两种常见的用户会话管理机制,它们主要用于跟踪用户状态,尤其是在用户登录后保持登录状态。由于HTTP协议本身是无状态的,无法自动识别同一用户的不同请求...

    Cookie和Session区别用法.pdf

    在Web开发和网络通信中,Cookie和Session是两个非常重要的技术概念,它们主要用于管理客户端和服务器之间的会话(Session)状态。下面将详细介绍Cookie和Session的区别、用法以及它们的原理。 首先,从概念上来说,...

Global site tag (gtag.js) - Google Analytics