`
yanguz123
  • 浏览: 568578 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

\(^_^)/ Session和Cookie

    博客分类:
  • Web
 
阅读更多

参考:http://blog.csdn.net/ylchou/article/details/7404201

参考:http://blog.csdn.net/amwguh1990/article/details/19905657

参考:http://blog.csdn.net/freedom_wbs/article/details/20139967

参考:http://mauersu.iteye.com/blog/1967238

参考:http://blog.csdn.net/flyingcat263/article/details/9189929

参考:http://blog.csdn.net/anhuidelinger/article/details/13289337

参考:http://blog.csdn.net/kendyhj9999/article/details/17358435

参考:http://blog.csdn.net/traysinezheng/article/details/9344541

参考:http://cbyniiaii.iteye.com/blog/1218871

参考:http://fjjj8.iteye.com/blog/1855231

参考:http://2671324128.iteye.com/blog/1952957

参考:http://lijiang.iteye.com/blog/778417 

参考:http://blog.csdn.net/zhq426/article/details/2992488

参考:http://ydbc.iteye.com/blog/1939460

参考:http://407840131-qq-com.iteye.com/blog/776941

参考:http://www.cnblogs.com/tiechui/archive/2010/11/30/1892145.html

参考:http://www.cnblogs.com/shoru/archive/2010/02/19/1669395.html

参考:http://langzhiwang888.iteye.com/blog/1553948

参考:http://oiote.blog.sohu.com/94812998.html

参考:http://blog.csdn.net/fangaoxin/article/details/6952954

参考:http://www.iteye.com/topic/585018

 

session:

1.保存在服务端的内存里面,保存的是对象,客户端不知道其中的信息。

2.基于访问的进程,记录了一个访问的开始到结束,当浏览器或进程关闭之后,session也就“消失”了。

3.被用于表示一个持续的连接状态,在网站访问中一般指代客户端浏览器的进程从开启到结束的过程(其实就是网站分析的访问(visits)度量,表示一个访问的过程)。

4.常见实现形式是会话cookie(session cookie),即未设置过期时间的cookie,是存储于浏览器内存中的,并不是写到硬盘上的,这个cookie的默认生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。实现机制是当用户发起一个请求的时候,服务器会检查该请求中是否包含sessionid,如果未包含,则系统会创造一个名为JSESSIONID的输出 cookie返回给浏览器(只放入内存,并不存在硬盘中),并将其以HashTable的形式写到服务器的内存里面;当已经包含sessionid时,服务端会检查找到与该session相匹配的信息,如果存在则直接使用该sessionid,若不存在则重新生成新的 session。这里需要注意的是session始终是有服务端创建的,并非浏览器自己生成的。

5.浏览器的cookie被禁止后session就需要用get方法的URL重写的机制或使用POST方法提交隐藏表单的形式来实现。

6.失效时间的设置,这里要分两方面来看:浏览器端和服务端。对于浏览器端而言,session与访问进程直接相关,当浏览器被关闭时,session也随之消失;而服务器端的session失效时间一般是人为设置的,目的是能定期地释放内存空间,减小服务器压力,一般的设置为当会话处于非活动状态达20或30分钟时清除该 session,所以浏览器端和服务端的session并非同时消失的,session的中断也并不一定意味着用户一定离开了该网站。

7.浏览器好像趋向于多进程的session共享,即通过多个标签或页面打开多个进程访问同一网站时共享一个 session cookie,只有当浏览器被关闭时才会被清除,也就是你有可能在标签中关闭了该网站,但只要浏览器未被关闭并且在服务器端的session未失效前重新开启该网站,那么就还是使用原session进行浏览;而某些浏览器在打开多页面时也可能建立独立的session,IE8、Chrome默认都是共享 session的,在IE8中可以通过菜单栏中的文件->新建会话来建立独立session的浏览页面。

8.同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。

9.用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。

10.如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。

 

 

cookie:

1.保存于浏览器或客户端文件里面,保存的是字符串,服务器能够知道其中的信息。

2.更多地被用于标识用户,它可以是长久的,用于用户跟踪和识别唯一用户。

3.是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取cookie包含的信息。

4.平常所说的cookie主要指的是另一类cookie——持久cookie(persistent cookies)。持久cookie是指存放于客户端硬盘中的 cookie信息(设置了一定的有效期限),当用户访问某网站时,浏览器就会在本地硬盘上查找与该网站相关联的cookie。如果该cookie 存在,浏览器就将它与页面请求一起通过HTTP报头信息发送到您的站点,然后在系统会比对cookie中各属性和值是否与存放在服务器端的信息一致,并根据比对结果确定用户为“初访者”或者“老客户”。持久cookie一般会保存用户的用户ID,该信息在用户注册或第一次登录的时候由服务器生成包含域名及相关信息的cookie发送并存放到客户端的硬盘文件上,并设置cookie的过期时间,以便于实现用户的自动登录和网站内容自定义。

5.cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。  

6.当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到sessionid=KWJHUG6JJM65HS2K6之类的字符串。

7.通常session cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的sessionid,这样我们信息共享的目的就达不到了,此时我们可以先把sessionid保存在persistent cookie中,然后在新窗口中读出来,就可以得到上一个窗口SessionID了,这样通过session cookie和persistent cookie的结合我们就实现了跨窗口的session tracking(会话跟踪)。

 

会话cookie和持久cookie的区别:

session cookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistent cookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如session cookie安全了。

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

 

分享到:
评论

相关推荐

    Tomcat/Servlet/Response/Cookie/Session/HTTP/Request

    Tomcat/Servlet/Response/Cookie/Session/HTTP/Request

    flask-session-cookie-manager

    标题“flask-session-cookie-manager”指的是一个Python应用,它专门针对Flask框架,用于管理和操作session cookie。在Web开发中,session cookie是服务器用来跟踪用户状态的一种方式,特别是在无状态的HTTP协议上...

    python中requests模拟登录的三种方式(携带cookie/session进行请求网站)

    一,cookie和session的区别 cookie在客户的浏览器上,session存在服务器上 cookie是不安全的,且有失效时间 session是在cookie的基础上,服务端设置session时会向浏览器发送设置一个设置cookie的请求,这个cookie...

    day16_cookie&session源代码.zip

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

    django框架之cookie/session的使用示例(小结)

    在Web开发中,Django框架提供了方便的cookie和session管理机制,用于解决HTTP协议无状态的问题。HTTP协议本身不支持会话跟踪,因此需要借助额外的技术,如cookie和session,来实现用户状态的维护。 一、HTTP协议无...

    Cookie、Session和Token三者的区别及使用

    ### Cookie、Session与Token的区别及使用详解 #### 一、Cookie **定义**: Cookie是一种用于在客户端保持状态的方案。简单来说,当你访问一个网站时,该网站可能会在你的计算机上留下一些信息(如用户名、密码等),...

    cookie_session知识点

    **Cookie** Cookie是一种在客户端和服务器之间传递信息的技术。...以上就是Cookie和Session的基本概念、创建、使用以及常见问题的解决方案。理解并熟练掌握这两者,对于开发Web应用程序至关重要。

    cookie和session示例

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

    flask、session、cookie解加密脚本

    在处理用户登录和会话管理时,`session`和`cookie`是两个核心概念。本文将深入探讨`Flask`中的`session`和`cookie`,以及如何对它们进行解密。 首先,`session`和`cookie`都是用于跟踪用户状态的方法。`cookie`通常...

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

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

    Day09_cookie & Session

    Cookie和Session都是维护用户状态的重要工具,在不同的场景下有着各自的优势。理解它们的工作原理和正确使用方法对于构建高效、安全的Web应用至关重要。希望本文能够帮助你更好地掌握这两项技术。

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

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

    session与cookie的区别和联系?

    ### Session与Cookie的区别和联系 #### 一、概念解析 - **Cookie**:Cookie是一种小型的数据文件,由服务器端生成并发送给用户浏览器,浏览器在本地(如用户的硬盘)保存该文件,然后每一次请求同一网站时都会把该...

    经典收藏Cookie和Session

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

    cookie_session.zip

    DJango框架中cookie、session实际应用,简单的登录、跳转首页的demo。运用到cookie、session技术,初步理解cookie/session在实际当中的实际应用。通过demo实际操作来理解cookie/session

    TP5 Session和Cookie

    在Web开发中,Session和Cookie是常见的用户状态管理工具,用于跟踪用户在网站上的行为。 Session是服务器端存储用户状态的一种方式。当用户登录网站后,服务器会在服务器端为该用户创建一个唯一的Session ID,并将...

    8_cookie和session1

    标题中的“8_cookie和session1”暗示我们将讨论的是Web开发中的两种重要技术——Cookie和Session。这两种技术都是用来跟踪和管理用户状态的,但它们在实现方式、安全性、性能、时效性和其他特性上有所不同。 首先,...

    session 和cookie 区别

    标题与描述中的关键词“session和cookie区别”指向了两种在Web开发中常用的状态管理技术,它们各自具有独特的特性和用途。下面将详细阐述这两种技术的关键知识点: ### session和cookie的区别 **1. 定义与存储位置...

    day16_cookie&session.rar

    在Web开发中,Cookie和Session是两种非常重要的技术,用于管理用户会话状态。它们都是用来跟踪用户身份和保持用户信息的方式,但有着不同的工作原理和应用场景。在本教程“day16_cookie&session”中,我们将深入探讨...

    SpringSession同时支持Cookie和header策略

    本文将深入探讨SpringSession如何支持Cookie和header策略,并解析`CookieHeaderHttpSessionStrategy.java`这个文件中的关键概念和技术细节。 首先,我们来看标题提及的“SpringSession同时支持Cookie和header策略”...

Global site tag (gtag.js) - Google Analytics