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

Cookie之一

    博客分类:
  • J2EE
阅读更多

Cookie是存储在客户端计算机中的一些信息,这些信息多用于与服务器进行交互。使用Document对象的cookie属性可以读取和设置Cookie的内容。

17.1  Cookie介绍

在HTML和JavaScript出现初期,网页的内容比较单一,仅仅只是显示一些文字和图片。而随着网络技术的发展,客户端与服务器之间的联系变得越来越多,也越来越重要。在这些联系之中,经常需要建立一些信息,如用于识别用户的ID等,而这些信息通常都是以Cookie的形式存储在客户端计算机中的。

17.1.1  Cookie简介

从JavaScript的角度来看,Cookie就是一些信息,如用户ID、用户状态等。这信息存放在客户端计算机中,用于客户端计算机和服务器之间传递信息。在JavaScript中,可以通过Document对象的cookie属性来读取或设置这些信息。由于Cookie多用在客户端计算机和服务器端计算机之间进行通信,因此,除了客户端程序(如JavaScript)之外,还有很多服务器端的程序(如ASP等)也可以存取Cookie。

对于操作系统而言,Cookie就是一个文件,这个文件中记录着客户端计算机与服务器端计算机通信所需要的信息。为了安全方面的考虑,浏览器通常只会让Cookie的创建网站来访问该Cookie。例如,A网站所创建的Cookie只有A网站可以访问,而B网站所创建的Cookie也只有B网站可以访问,A、B网站不能访问对方所创建的Cookie。因此,用户不必担心信息泄露。

17.1.2  Cookie的使用范围

实际上,Cookie的作用就是与服务器互动。由于网络的发达,客户端与服务器的互动变得十分重要,在以下几个场合中经常可以看到Cookie的身影。

  ●     用户登录:在很多网站的登录页面中都可以看到一个Cookie选项,多用于询问用户在多长时间不需要再登录,如一天、一个月或一年等。这就需要使用Cookie技术,在用户第一次登录时,使用Cookie记录下了用户的信息,并让其保存一天、一个月或一年。只要Cookie没有过期,那么用户在下次访问需要身份验证时,就会通过Cookie将信息传递到服务器上,避免了用户的重复登录。

  ●     电子商务:在电子商务中使用最多的就是购物车和最近浏览过的商品。这两项都使用了Cookie技术。当用户看到需要购买的商品时,浏览器可以将这些商品的信息写在Cookie中,此时的Cookie相当于购物车,只不过购物车中存放的不是商品,而是商品的信息。在用户最后结账时,可以将所有的商品信息从Cookie中取出,统一付款。最近浏览过的商品的处理方式相同,也是将用户最近浏览过的商品信息存放在Cookie中,当用户下次再访问该电子商务网站时,可以看到自己上次浏览过哪些商品。在电子商务中,使用Cookie还可以将购物做得更人性化。例如,通过Cookie记录用户浏览过的商品信息,再通过分析这些商品的共性来为用户推荐相关商品。

  ●     博客:博客是目前网络中流行的网络日记。不同的用户都可以在博客中发表文章,也可以装饰自己的博客风格,如背景颜色、文字大小等。这些都可以先写在Cookie中,在用户确定之后,才一次性提交到服务器上。

17.1.3  Cookie的基本概念

Cookie与前面章节中所介绍的变量、常量等不同,Cookie的信息是记录在一个Cookie文件中,并且这个Cookie文件是存放在客户端计算机中的,在使用Cookie时必须要注意以下几个基本概念。

  ●     名称:每一个Cookie都有自己的名称,就好像每一个变量、常量都有自己的一个名称一样。通过Cookie名称可以存储Cookie信息。在JavaScript中,Cookie名称也必须是一个合法的标识符。如用户编号可以使用userId来命名。

  ●     值:通过Cookie名称所存储的Cookie值,也就是存放在Cookie中的具体信息。例如用户的编号为10,那么userId的值为10。

  ●     生存期:也就是Cookie的有效日期。在默认情况下,一个Cookie的生存期就是浏览器窗口关闭的时间。也就是说,在一个浏览器窗口中创建的Cookie,只要该浏览器没有关闭,那么该Cookie就会一直有效,一旦该浏览器窗口关闭,那么由该浏览器窗口所创建的Cookie就会失效,不能再访问。如果想要该Cookie在浏览器窗口关闭后还可以使用,就必须要为该Cookie设置生存期,也就是失效的日期。

  ●     路径:出于安全方面的考虑,通常一个网页所创建的Cookie只能被与该网页在同一目录或子目录下的所有网页访问,而不能被其他目录下的网页访问。例如由“http://www.aspxfans.com/BookSupport/sample.htm”所创建的Cookie,可以被“http://www.aspxfans.com/BookSupport/”下的所有网页访问,也可以被“http://www. aspxfans.com/BookSupport/jsCode/”下的所有网页访问,但不能被“http://www. aspxfans.com/”下或“http://www.aspxfans.com/Book/”下的任何网页访问。可以通过设置Cookie路径的方法让“http://www.aspxfans.com/”下或“http://www.aspxfans. com/Book/”下的所有网页访问该Cookie。

  ●     域:同样是出于安全方面的考虑,在默认情况下,即使设置了Cookie的路径,也只能在同一个域中访问Cookie,不同域之间的网页是不能互相访问Cookie的。如“www.aspxfans.com”和“book.aspxfans.com”两个服务器之间的网页就不能互相访问Cookie。可以通过设置Cookie域的方法让“www.aspxfans.com”和“book.aspxfans.com”两个服务器之间的网页互相访问Cookie。

  ●     安全:在默认情况下,Cookie信息的传递使用的是没有加密的明码传递方式,如果Cookie中的信息比较重要,这就要求对Cookie信息进行加密。如果将Cookie的secure设为true,那么该Cookie就只能在HTTPS或其他安全协议中传输,可以增加安全性。

17.1.4  使用Cookie的注意事项

Cookie的使用范围很广,但是在使用Cookie时,有以下几个方面必须要注意:

  ●     一个网页可以创建多个Cookie,但多个Cookie可能会放在同一个cookie文件中。

  ●     每个Cookie所存放的数据不能超过4KB。

  ●     每个Cookie文件中存储的Cookie个数不能超过300个。

  ●     每个域可以创建的Cookie文件不能超过20个。

  ●     浏览器可以通过设置来接受或拒绝访问Cookie。

  ●     虽然浏览器可以禁止网页访问非本网站(或域)所创建的Cookie,但是由于Cookie是以文件的形式存放在客户端计算机中的,因此,可以使用第三方工具来查看和修改Cookie文件中的内容。

<!-- page -->
分享到:
评论

相关推荐

    cookie之困

    kcon2015的演讲之一,有对cookie的详细介绍

    会话对象之Cookie一篇搞定.md

    Cookie的作用可大了,但无论怎么夸大Cookie的作用都离不开“跟踪客户端状态”这句话。我们知道Cookie是服务器保存在客户端的信息,然后客户端会在下次请求时把Cookie在还给服务器,这样服务器就可以通过信息来识别...

    JAVA之cookie与session

    具体来说cookie机制采用的是在客户端保持... 同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session  机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择

    cookie总结

    这是一篇关于cookie的来源,以及cookie的简单介绍,有cookie的一些方法的实例,进行简单的cookie总结

    cookie示例

    cookie是示例介绍 去下载了一本电子书, http://www.ixdzs.com/down/62453_4?c=24906480 重生之神级学霸txt下载,epub下载 , 用EPubBuilder编辑器加载40多秒, 后来发现这本书有300多个章节, 也难怪, ...

    六大对象Response,Request,Server,Application,Session,Cookie

    因为Request对象是Page对象的成员之一,所以在程序中不需要做任何的声明即可直接使用。 Server对象提供对服务器上的方法和属性进行的访问 .其类名称是HttpServerUtility. Application对象在实际网络开发中的用途...

    python爬虫之selenium-cookie操作

    python爬虫之selenium--cookie操作。 在做自动化的时候,遇到难处理的验证码,我们可以手动登录,然后获取登录到的cookie,添加到浏览器中,就可以实现登录。具体操作看图片信息。以下只是提纲式列举一二,希望对你...

    CookieManager:CookieManager是Cookie之上的ASP.NET Core抽象层

    Cookie经理 Cookie上方的ASP.Net核心抽象层。 ASP.NET Core Wrapper读取和写入cookie。 建置状态 构建服务器 平台 地位 AppVeyor 视窗 ... Func 支持:封装一个方法,该方法返回TResult参数指定的类

    同源策略以及cookie安全策略

    跨站点请求伪造(Cross—Site Request Forgery).以下简称CSRF。是一种广泛存在的网站漏洞。...2009年3月著名网络安全机构SANS与MITRE结合来自全球超过30个软件工作者及安全专家,将CSRF列为最危险的25个编程错误之一。

    JS初级练习之cookie

    一个欢迎页面的cookie运用练习, 通过代码注释, 希望朋友可以明名cookie的原理, 并灵活运用。

    cookie.js:一个小型JavaScript库,可简化cookie

    [removed]绝对是JavaScript的丑陋部分之一。 该库旨在提供一种简单而强大的cookie使用方式。用法下载并将其包含在HTML文档中,这将添加一个名为cookie的全局对象: &lt; script src =" cookie.umd.min.js " &gt; &...

    express之cookie和session

    目录 1.cookie 1.1 设置cookie  1.2 获取cookie ... HTTP是无状态的链接, 你请求一个网页结束以后,此时你和服务器之间没有任何关系了,没有数据持续通路,下一次访问,服务器是不知道你来过的,所以在H

    Cookie Clicker-2.0.8.zip

    概述:Cookie Clicker 是一款令人兴奋的闲置答题器游戏。让自己沉浸在烘焙饼干的过程中,从一个小糖果店变成饼干皇帝。 描述: 适用于Chrome&trade;浏览器的超棒饼干游戏!点击搞笑曲奇,获得更多曲奇,购买升级,...

    cf-cookie:提取由Cloudflare生成的cookie

    getCFcookie.js是一个脚本,用于获取由生成的cookie。 一旦获得所有cookie,就可以简单地在cookie中过滤必要的值,例如cf_clearance ,以绕过cf check。 相依性 : 库,无头Chrome : 模块化插件框架 :防止检测...

    使用PHP制作 简易员工管理系统之八(使用COOKIE保存用户登陆id以及显示用户登录时间)

    使用PHP制作 简易员工管理系统之八(使用COOKIE保存用户登陆id以及显示用户登录时间)

    C#中Cookie之存储对象

    做项目过程中,用户登陆之后,需要将用户的信息存到Cookie中,但因为Cookie中只能存储字符串,所以想到了先把用户实体序列化成Json串,存储在Cookie中,用到的时候再拿出来反序列化。 道理很简单,网上的例子也很多...

    PHP之COOKIE支持详解

    一: 设置cookie 使用cookie前必须设置cookie. 函数原型:int setcookie(string name,string value,int expire,string path,string domain,int secure) 其中,除name外,所有的参数都是可选的,可以用空的字符串表示未...

    JavaScript之cookie技术详解

    假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的...

    利用nginx解决cookie跨域访问的方法

    一、写在前面 最近需要把阿里云上的四台服务器的项目迁移到客户提供的新的项目中,原来的四台服务器中用到了一级域名和二级域名。比如aaa.abc.com 和bbb.abc.com 和ccc.abc.com。其中aaa.abc.com登录,通过把cookie...

    本地化存储之cookie、localstorage的详细用法

    本课程详细的介绍了本地化存储之cookie、localstorage的详细用法。由渡一高级讲师---陈学辉老师进行详细讲解。欢迎大家使用。注:需要下载ev播放器进行播放

Global site tag (gtag.js) - Google Analytics