`
lcm_up
  • 浏览: 10251 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Cookie的原理

    博客分类:
  • WEB
阅读更多

Cookie的原理

浏览器要访问服务器里面的文件,只要在浏览器里面写这个文件名,写服务器的地址,写端口号,写http,要想传参数,直接在地址里面传,或者通过post方式来传。

 

http协议的无连接性,要求出现一种保存c/s间状态的机制

 

通过浏览器访问网页1,买了一个东西(登陆了),当我们从服务器拿下我么的内容之后,浏览器到服务器的连接就断掉了(无连接性);买完东西(登陆后)去另外一个页面网页2结账,所以去第一个页面买的东西要保存下来。

怎么保存第一个页面买东西的记录呢?

答案:把买东西的记录写在客户端。服务器端在客户端写入的东西,就叫做cookie

当结账的时候,网页2就会到客户端把第一个页面保存在客户端的记录拿出来,即把cookie拿到,然后结账。

1服务器可以向客户端写内容,只能是文本内容。(不能写其他的文件,否则会不安全)

2客户端可以阻止服务器端写入。

3.服务器端只能拿自己webapp写入的的东西。(网页2结账时,需要从客户端取出记录,然后结账)

4.cookie就是服务器端写入客户端的这些个小文本的信息。Cookie以“名-值”对的形式保存数据。

5.登陆后两个星期不用再登陆。就是服务器把信息保存在了客户端的cookie里面了。

 

Cookie分为两种:(1)属于窗口(子窗口)(2)属于文本的

 

一种写在文件里,一种是相当于你写入内存里,只要你把浏览器关掉,这个cookie就消失。服务器端写在客户端,如果设置了生存周期,会写在我们的文件里面,如果没有设置,他会写在我们客户端的内存里面。当浏览器窗口一关,

这个cookie就消失了。

==========================================

Session的工作原理 :记录在服务器

 

 

原理:

 

当浏览器访问某个页面时,会在服务器端开辟一块内存,而这块内存是跟你的浏览器窗口(子窗口)关联到一起的。

 

只要我愿意的话,我会给你的浏览器来建立一个session,然后这个session只能由你这个浏览器来访问。

 

另外一个浏览器也想记录自己的状态,怎么办?再起一个单独的session,来和我们这个浏览器关联在一起。

 

 

 

理解:你访问我第一个页面时,我给你的浏览器创造独一无二的号码,我也给你创建的session赋予同样的号码,在服务器端记录着一系列的session,当你在访问第二个页面时,请你把号码发给我第二个页面,我第二个页面再找你这个号码和我们原来session2对应的那个session2。这个号码就叫做sessionId

 

Session的两种实现方式:1)通过Cookies来实现2)通过url重写来实现

 

 

 

所谓通过Cookies来实现说的是什么意思?

 

 

 

每一个客户端你要想支持session的话,你必须在访问我的页面的时候把你的sessionID传递给我。你怎么样才能把这个sessionID传递给我呢?

 

 

 

 1)通过Cookies来实现:我们可以把这个sessionID存在Cookies里面。存在临时的内存里面,浏览器窗口关了,sessionID就不需要了,浏览器窗口关了,永远不会有人来访问你这个浏览器对应的session.如果浏览器支持Cookies(可以通过设置浏览器不让支持Cookie),创建session时就会把sessionID保存在Cookie里面。(如果不允许Cookie,在IE里面可能禁掉,在fireFox里面禁掉的话,当刷新时,sessionID就会不断的变化,说明Cookie里面没有保存Session)

 

 

 

(2)登陆邮箱的例子来理解session登陆的页面和读邮件的页面是两个页面,那么读邮件的页面怎么知道这是你的邮件呢?那只有一个办法,你在登陆完成这个页面(登陆的页面)之后,他给你一个sessionId,你再访问后面的页面时,每次把这个sessionID带上,他就知道原来是你登陆进来的。

 

当你在访问大公司的页面时,比如新浪邮箱,你如果把浏览器的Cookie禁用了,登陆的时候sessionID就存不进去了,新浪邮箱又没有设置encodeURL,所以只能重新设置Cookies

 

 

 

(3)在tomcat默认conf目录下面webapp默认的设置session的过期时间是30分,也就是说超过30session就不能用了。对所有的webapp都适用,你可以通过下面这段代码设置。<session-config> <session-timeout>30</session-timeout></session-config>

 

 

 

4)两个窗口的sessionID号永远不可能相等,除非一个窗口是另一个页面的子窗口。

 

 

(本文摘自:http://www.cnblogs.com/200911/archive/2012/05/02/2479880.html

 

分享到:
评论

相关推荐

    SYN Cookie原理及在Linux内核中的实现

    在目前以IPv4为支撑的网络协议上搭建的网络环境中...本文就分别介绍一下SYN Flood攻击和SYN Cookie的原理,更重要的是介绍Linux内核中实现SYN Cookie的方式。最后,本文给出一种增强目前Linux中SYN Cookie功能的想法。

    COOKIE注入原理动画教程

    COOKIE注入原理动画教程,教你掌握cooke注入的原理,值得一看!

    JavaScript cookie原理及使用实例

    什么是cookie? cookie 是本地计算机的临时存储。 作用:在浏览器中进行数据的存储,用户名、密码(比如:保存页面信息,自动登录等)。 特点: cookie需要在服务器环境下运行; cookie的容量在4kb左右,限制为每个...

    关于session与cookie的原理简述

    session和cookie原理解释以及他们的相同点和区别。

    cookie原理解析

    这篇文档是我摘自别人的文档。和大家分享一下

    session和cookie交互原理

    介绍下cookie和session之间是咋交互的。原理是啥

    Real防盗链防下载插件

    采用Cookie原理,对合法用户页面提供一个多重加密Cookie,点播时对Cookie进行验证实现防盗链、下载的功能。由于Cookie本身的特性,需要Web服务和RealSystem服务处于同一个域下才能接收到Cookie信息,所以推荐Web服务...

    学习笔记(12):21天搞定分布式Python网络爬虫-urllib库-Cookie原理讲解

    cookie:某些网站为了辨别用户身份、进行session跟踪而存储再本地终端上的数据,cookie存储的数据量有限。 NAME:cookie的名字 VALUE:cookie的值 Expires:cookie的过期时间 Path:cookie作用的路径 Domain:cookie...

    php cookie工作原理与实例详解

    工作原理与一些对于cookie读写操作实例。 Cookie和会话状态 做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址! 什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和...

    asp.net的Cookie的Demo

    简单的asp.net cookie代码,可以让你简单了解cookie原理

    0006010 Session与Cookie实现原理.docx

    Session与Cookie实现原理

    深入理解ServletJSP之“Cookie和Session原理”很详细

    深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很详细 深入理解ServletJSP之“Cookie和Session原理”很...

    cookie攻击

    cookie注入攻击,很详细,包括COOKIE格式,Cookie欺骗原理,利用JavaScript来设置cookie等

    GeckoFX 火狐内核C#新浪微博Cookie读取-Demo

    (1)这个demo使用.NET4.0框架,C#语言编写的Winform程序,使用GeckoFX 33.0.9版本火狐...(3)cookie读取原理简单介绍:火狐是使用sqlite数据库存储cookie的,都在cookies.sqlite中了。不明白的请自行百度sqlite数据。

    带你了解session和cookie作用原理区别和用法

    主要介绍了session和cookie作用原理,区别和用法,以及使用过程中的优缺点,通过列举区别和原理,使读者更能理解两者之间的关系,需要的朋友可以参考下

    Java 模拟cookie登陆简单操作示例

    主要介绍了Java 模拟cookie登陆简单操作,结合实例形式分析了Java 模拟cookie登陆的相关原理与基本实现技巧,需要的朋友可以参考下

    Python使用Srapy框架爬虫模拟登陆并抓取知乎内容

    一、Cookie原理 HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制 Cookie是http消息头中的一种属性,包括: Cookie名字(Name)Cookie的值(Value) Cookie的过期时间(Expires/Max-Age) ...

    【动力节点】Java经典教程_Servlet视频教程之Cookie

    教程名称: 【动力节点】Java经典教程_Servlet视频教程之Cookie动力节点推出的Java视频教程首先简单介绍了Cookie,及在火狐浏览器下如何查看Cookie,然后详细讲解了在JavaEE中如何使用Cookie,及Cookie的禁用。...

Global site tag (gtag.js) - Google Analytics