`
ttwang
  • 浏览: 333983 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

session cookie是什么,有什么区别

    博客分类:
  • JSP
阅读更多

一 cookie简介

     因特网的Cookie技术极其简单,却有着旺盛的生命力。Cookie开始引起众人的注意是从2000年二月份随着网络隐私权的提出开始的,有关的辩论至今仍在继续。

    从另一方面来说,Cookie使得浏览网页更容易了。几乎所有的主要的网站设计者都使用了Cookie,因为他们想为浏览网站的人提供一个更好的浏览环境,同时也能更加准确地收集访客的信息。

        一家颇有影响的报纸上曾刊登了一篇很有深度的关于网络隐私的文章,上面对于Cookie的定义是这样的: “Cookie是Web网站放在您的硬盘上的程序。它守在您的电脑里,搜集您的信息以及您在因特网上所做的任何事情,当Web站点需要的时候它能够下载所有这些搜集到的信息。” 像这样的定义在报刊中相当普遍。问题是,它的定义犯了很大的错误。Cookie不是程序,而且它不能像程序一样地运行,所以它无法为自己搜集任何信息。它也不能从您的电脑上取得您的任何个人资料。  

        Cookie的比较确切的定义应该是这个样子: “Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。信息的片断以‘名/值’对(name-valuepairs)的形式储存。”

       举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的机器上。 如果您使用IE浏览器访问Web,您会看到所有保存在您的硬盘上的Cookie。它们最常存放的地方是:c:\windows\cookies(在Win2000中则是C:\DocumentsandSettings\您的用户名\Cookies——作者注)。在我的机器上共有165个文件。每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的Web站点的信息。 在这个文件夹里的每个Cookie文件都是一个简单而又普通的文本文件。透过文件名,您可以看到是哪个Web站点在您的机器上放置了Cookie(当然站点信息在文件里也有保存)。您也能双击打开每一个Cookie文件。



比如,我访问了goto.com,而且这个站点在我的电脑上放了个Cookie。goto.com的Cookie文件包含了这样的内容: UserIDA9A3BECE0563982Dwww.goto.com/ goto.com在我的电脑上存入了一个单一的“名/值”对。“名/值”对的“名”是UserID,“值”是A9A3BECE0563982D。在我第一次访问goto.com的时候,该网站为我分配了一个唯一的ID并存在我的电脑里。 (注:除了上面举例的“名/值”对,可能会有其它的“名/值”对同时保存下来。那是浏览器的一些内部信息,一般用户不必多做了解。)


        Amazon.com在我的电脑上保存了稍稍多一些的信息。当我查看Amazon在我的电脑上建立的Cookie文件时,它包含以下内容: session-id-time954242000amazon.com/ session-id002-4135256-7625846amazon.com/ x-maineKQIfwnxuF7qtmX52x6VWAXh@Ih6Uo5Hamazon.com/ ubid-main077-9263437-9645324amazon.com/ 以上内容显示出Amazon存储了一个主用户IDubid-main,一个标记每次任务的IDsession-id及任务发生的时间session-id-time。还有一个x-main,不知道是什么。 大多数的网站在您的电脑上只保存一条信息,即用户ID。但一个站点可以用Cookie存储的“名/值”对的最大数目没有任何限制。 一个“名/值”对仅仅是一条命名的数据,它不是程序,也不能“做”任何事情。一个网站只能取得它放在您的电脑中的信息,它无法从其它的Cookie文件中取得信息,也无法得到您的电脑上的其它任何东西 英文直接翻译过来的意思呢就是小甜品 Cookie英文意指饼干,不过在电脑术语中它可不像饼干那么简单。简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie的使用很普遍,许多提供个人化服务的网站,都是利用Cookie来辨认使用者,以方便送出使用者量身定做的内容,像是Web接口的免费E-mail网站,都要用到 Cookie。Cookie中记载的资料相有限,Cookie是安全的。网站不可能经由Cookie获得你的E-mail地址或是其它私人资料,更没有办法透过Cookie来存取你的计算机。但是如果你实在不喜欢Web服务器乱丢饼干(Cookie)到你家,当然可以让浏览器拒绝网站存放Cookie到你的计算机。只要在IE的“工具”菜单下选择“Intertnet选项”的“安全”,按自定义级别,将Cookie部分设为关闭,按确定,关闭浏览器,再重新启动浏览器即可。当你关闭Cookie之后,很多网站的个人化服务功能很可能也不能再使用了.


二 session 简介

IE中: 有效的窗品包括

1.Session对象只在建立Session对象的窗口中有效。

2.在建立Session对象的窗口中新开链接的窗口

无效的窗口包括

1.直接启动IE浏览器的窗口

2.不是在建立Session对象的窗口中新开链接的窗口

NetScape中: 只要一个窗口有了某个Session对象,则全部窗口对此Session都有效 Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子。 这个唯一的SessionID是有很大的实际意义的。当一个用户提交了表单时,浏览器会将用户的SessionID自动附加在HTTP头信息中,(这是浏览器的自动功能,用户不会察觉到),当服务器处理完这个表单后,将结果返回给SessionID所对应的用户。试想,如果没有SessionID,当有两个用户同时进行注册时,服务器怎样才能知道到底是哪个用户提交了哪个表单呢。



当然,SessionID还有很多其他的作用,我们会在后面提及到。 除了SessionID,在每个Session中还包含很多其他信息。但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息。例如我们想了解一下访问我们网站的用户浏览了几个页面,我们可能在用户可能访问到每个的页面中加入: 通过以下这句话可以让用户得知自己浏览了几个页面: 可能有些有些读者会问:这个看似像是数组的Session(“..”)是哪里来的?需要我定义吗?实际上,这个Session对象是具有ASP解释能力的的WWW服务器的内建对象。也就是说ASP的系统中已经给你定义好了这个对象,你只需要使用就行了。其中Session(“..”)中的..就好像变量名称,Session(“..”)=$$中的$$就是变量的值了。你只需要写上句话,在这个用户的每个页面中都可以访问..变量中的值了。 其实ASP一共内建了7个对象,有Session、Application、Cookie、Response、Request、Server等。在其他的服务器端脚本语言如JSP、PHP等中也有其类似的对象,只是叫法或者使用方法上不太一样。 ASP Session的功能的缺陷 目前ASP的开发人员都正在使用Session这一强大的功能,但是在他们使用的过程中却发现了ASP Session有以下缺陷: 进程依赖性:ASP Session状态存于IIS的进程中,也就是inetinfo.exe这个程序。所以当inetinfo.exe进程崩溃时,这些信息也就丢失。另外,重起或者关闭IIS服务都会造成信息的丢失。



Session状态使用范围的局限性:刚一个用户从一个网站访问到另外一个网站时,这些Session信息并不会随之迁移过去。例如:新浪网站的WWW服务器可能不止一个,一个用户登录之后要去各个频道浏览,但是每个频道都在不同的服务器上,如果想在这些WWW服务器共享Session信息怎么办呢? Cookie的依赖性:实际上客户端的Session信息是存储与Cookie中的,如果客户端完全禁用掉了Cookie功能,他也就不能享受到了Session提供的功能了。 鉴于ASP Session的以上缺陷,微软的设计者们在设计开发 ASP.NET Session时进行了相应的改进,完全克服了以上缺陷,使得ASP.NET Session成为了一个更加强大的功能。


三 区别

Session是存在服务器端的;而Cookie是存在客户端的!!

Session更不需要Cookie来支持和不会受浏览器端的设置影响,可记录每个访问者的信息,独立在服务器端,比Cookie安全!

Session是存在内存中的,浏览器关闭它也就“死”了;Cookie是以文件方式存在的,可以修改其“存活”时间。

分享到:
评论

相关推荐

    session 和cookie 区别

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

    session与cookie的区别和联系?

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

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

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

    flask-session-cookie-manager

    - `flask_session_cookie_manager3.py`和`flask_session_cookie_manager2.py`:很可能是实现cookie管理功能的Python源代码文件,可能有不同的版本或者功能差异。 - `setup.py`:Python项目的标准配置文件,用于定义...

    cookie和session区别

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

    flask、session、cookie解加密脚本

    在提供的`flask_session_cookie_manager3.py`和`flask_session_cookie_manager2.py`文件中,可能包含了实现这个过程的代码。这些脚本可能用来检查或调试`Flask`应用的`session`和`cookie`管理,或者用于演示如何手动...

    经典收藏Cookie和Session

    通过以上内容,我们可以清楚地了解到Cookie与Session的基本概念及其区别,同时对于会话Cookie与持久Cookie的不同也有了更深入的理解。在实际应用中,合理选择和使用这两种机制可以帮助开发者更好地管理用户的会话...

    JAVA之cookie与session

    #### 五、Cookie与Session的区别 尽管 Cookie 和 Session 都用于跟踪用户状态,但它们有着本质的区别: 1. **存储位置**:Cookie 存储在客户端,而 Session 存储在服务器端。 2. **安全性**:由于 Cookie 存储在...

    Cookie,Session,Application的区别与应用

    ### Cookie、Session、Application 的区别与应用 在 ASP.NET 中,为了存储用户的状态信息或临时数据,开发人员经常使用多种内置的对象,例如 Application、Session、Cookie、ViewState 和 Cache 等。这些对象各有...

    cookie机制和session机制的区别

    ### Cookie机制与Session机制的区别及关系 在现代网络应用中,服务器端与客户端之间的状态保持是至关重要的,尤其是在无状态的HTTP协议下。Cookie机制与Session机制是两种常用的状态管理方式,它们各自拥有独特的...

    Session Cookie的HttpOnly和secure属性

    其次,GlassFish2.x支持的是servlet2.5,而servlet2.5不支持Session Cookie的"HttpOnly"属性。不过使用Filter做一定的处理可以简单的实现HttpOnly属性。GlashFish3.0(支持servlet3.0)默认开启Session Cookie的...

    cookie和session示例

    总结,Cookie和Session都是Web开发中不可或缺的部分,理解它们的工作机制并合理使用,有助于构建更高效、安全的Web应用。在实际项目中,往往结合使用两者,例如,将Session ID通过Cookie发送,实现会话跟踪。学习和...

    flask-session-cookie-manager-master.zip

    本项目“flask-session-cookie-manager-master.zip”显然是一款针对Flask Web框架的session管理工具,它专注于session的加密与解密。Flask是一个轻量级的Python Web服务器网关接口(WSGI)应用框架,广泛用于快速...

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

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

    SpringSession同时支持Cookie和header策略

    然而,这种方式在某些情况下可能会受限,例如在无Cookie的场景或者有跨域需求时。SpringSession提供了解决这些问题的方案,它支持通过HTTP头部来传递session信息,这称为header策略。 Cookie策略是基于HTTP Cookie...

    cookie和session

    本文将详细解析Cookie与Session的工作原理、区别及应用场景。 #### 一、Cookie与Session的基本概念 **Cookie**:是一种简单的客户端存储技术,用于保存用户的偏好设置、登录状态等信息。当用户访问网站时,服务器...

    session实质就是cookie

    ### Session与Cookie关系详解 #### 一、会话管理概览 在Web开发中,会话管理是一项重要的技术,它负责维护用户与服务器之间交互的数据。通常,这种交互包括用户的登录状态、购物车中的商品信息等。为了实现这些...

    session与cookie的区别以及配置使用

    ### Session与Cookie的区别及配置使用 #### 一、概述 在Web开发中,尤其是在使用PHP进行后端开发时,为了实现用户状态管理、个性化设置等功能,开发者常常需要使用到两种技术:Session 和 Cookie。这两种技术虽然...

    session与cookie.doc的区别

    Session和Cookie是两种常见的Web应用程序中用于管理用户会话的技术,它们主要的区别在于存储位置、生命周期和安全性。 **Session** 1. **存储位置**:Session是服务器端存储机制,它在服务器上为每个用户开辟一块...

Global site tag (gtag.js) - Google Analytics