Cookie 解说(分类、用途、缺陷、功能 ...)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

Cookie(复数形态Cookies),中文名称为“小型文本文件”或“小甜饼,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

分类

Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。

内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。

硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。

用途

因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。

在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么,所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

在刚才的购物场景中,当用户选购了第一项商品,服务器在向用户发送网页的同时,还发送了一段Cookie,记录着那项商品的信息。当用户访问另一个页面,浏览器会把Cookie发送给服务器,于是服务器知道他之前选购了什么。用户继续选购饮料,服务器就在原来那段Cookie里追加新的商品信息。结帐时,服务器读取发送来的Cookie就行了。

Cookie另一个典型的应用是当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

Cookie的缺陷

  1. Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
  2. 由于在HTTP请求中的Cookie是明文传递的,所以安全性成问题,除非用HTTPS。
  3. Cookie的大小限制在4KB左右,对于复杂的存储需求来说是不够用的。

使用Cookies

用户可以改变浏览器的设置,以使用Cookies。同时一些浏览器自带或安装开发者工具包允许用户查看、修改或删除特定网站的Cookies信息。

识别功能

如果在一台计算机中安装多个浏览器,每个浏览器都会以独立的空间存放Cookie。因为Cookie中不但可以确认用户信息,还能包含计算机和浏览器的信息,所以一个用户使用不同的浏览器登录或者用不同的计算机登录,都会得到不同的Cookie信息,另一方面,对于在同一台计算机上使用同一浏览器的多用户群,Cookie不会区分他们的身份,除非他们使用不同的用户名登录。

反对Cookies者

一些人反对Cookies在网络中的应用,他们的理由如下:

识别不精确

  • 识别功能

识别有时候会发生错误

隐私、安全和广告

Cookies在某种程度上说已经严重危及用户的隐私和安全。其中的一种方法是:一些公司的高层人员为了某种目的(譬如市场调研)而访问了从未去过的网站(通过搜索引擎查到的),而这些网站包含了一种叫做网页臭虫的图片,该图片透明,且只有一个像素大小(以便隐藏),它们的作用是将所有访问过此页面的计算机写入Cookie。而后,电子商务网站将读取这些Cookie信息,并寻找写入这些Cookie的网站,随即发送包含了针对这个网站的相关产品广告的垃圾邮件给这些高级人员。

偷窃Cookies和脚本攻击

虽然Cookies没有中计算机病毒那么危险,但它仍包含了一些敏感消息:用户名、计算机名、使用的浏览器和曾经访问的网站。用户不希望这些内容泄漏出去,尤其是当其中还包含有私人信息的时候。

这并非危言耸听,跨站点脚本(Cross site scripting)可以达到此目的。在受到跨站点脚本攻击时,Cookie盗贼和Cookie毒药将窃取内容。一旦Cookie落入攻击者手中,它将会重现其价值。

  • Cookie盗贼:搜集用户Cookie并发给攻击者的黑客,攻击者将利用Cookie消息通过合法手段进入用户帐户。
  • Cookie投毒:一般认为,Cookie在储存和传回服务器期间没有被修改过,而攻击者会在Cookie送回服务器之前对其进行修改,达到自己的目的。例如,在一个购物网站的Cookie中包含了顾客应付的款项,攻击者将该值改小,达到少付款的目的。

Cookies的替代品

鉴于Cookie的局限和反对者的声音,有如下一些替代方法:

  • Brownie方案,是一项开放源代码工程,由SourceForge发起。Brownie曾被用以共享在不同域中的接入,而Cookies则被构想成单一域中的接入。这项方案已经停止开发。
  • P3P,用以让用户获得更多控制个人隐私权利的协议。在浏览网站时,它类似于Cookie。
  • 在与服务器传输数据时,通过在地址后面添加唯一查询串,让服务器识别是否合法用户,也可以避免使用Cookie。

 

 

转自:https://zh.wikipedia.org/wiki/Cookie

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

需求规格说明书1.0

1.引言 1.1目的 该文档是关于我们组的记事本安卓APP和网页版本的功能和性能的描述,重点描述了系统的功能需求,并作为系统设计的主要输入。 本文档的预期读者包括:需求分析人员,设计人员,开发人员,项目管理人…

2020-3-30

题目一: JavaScript 将数组原有的顺序打乱 function le(){ //创建一个函数作为sort()函数的参数。return 0.5-Math.random(); //返回一个数字可能大于零也可能小于零,这样就可以实现随机排序功能, } var arr[]; //声明一个空数组。for(var i…

vuecli3+webpack4优化实践(删除console.log和配置dllPlugin)

本文主要介绍如何在vuecli3生成的项目中,打包输出时删除console.log和使用dllplugin,并记录了配置过程中踩到的坑。 (本人水平有限~希望大家多多指出有误的地方) 一、生产环境中删除console.log 在开发代码中写的conso…

伤肾的九个恶习及解决办法(图)

近年来,很多人都在通过各种药物保护肾脏,其实,在生活中形成的各种不良饮食和生活习惯在不停地伤害你的肾,只是你未曾注意到而已。所以要保护好你的肾脏,必须从改变不良饮食和生活习惯开始。 不爱喝水 大部分男人对喝…

CC-BY-NC-SA (创作共用许可协议)

创作共用许可协议 (英语:Creative Commons license,简称CC许可) 是一种公共版权许可协议,其允许分发受版权保护的作品。一个创作共用许可,用于一个作者想给他人分享、使用、甚至创作派生作品的权利。创作共…

2020-3-31

题目一&#xff1a; 评论敏感词过滤代码&#xff0c;很多时候需要对一些评论或者文章中的敏感词进行过滤。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> </head> <script type"text/javascript"> window.o…

快速通读《现代软件工程——构建之法》

在快速通读《现代软件工程——构建之法》后&#xff0c;我有如下问题&#xff1a;Q1&#xff1a;第一章通过形象的例子告诉我们什么是软件工程&#xff0c;介绍了软件工程的各个阶段&#xff0c;对软件工程的概念及它的特性做了较为生动而详细的介绍&#xff0c;那么为什么需要…

Java 对象的序列化和反序列化

一.序列化和反序列化的概念 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列…

不可重入锁和可重入锁

不可重入锁也叫自旋锁 指当一个方法调用了锁之后&#xff0c;如持有本锁的另一个方法也想执行&#xff0c;将会进入等待。那么想要使用这个方法必须先释放锁方可调用 public class Lock{private boolean isLocked false;public synchronized void lock() throws InterruptedEx…

家长必看 父母须知孩子社交圈九要点(组图)

孩子在慢慢的长大&#xff0c;总要接触外面的环境、接触到更多的人&#xff0c;也需要自己的社交圈。那么孩子的社交圈父母要知道9点。 1、妈妈是第一个“好朋友” 孩子社交的第一步从出生就开始了。虽然小小的他躺在那里还不能说话&#xff0c;但是通过哭、目光接触、笑等表…

2020-4-1

题目一 页面加载图片的时候&#xff0c;可能由于各种原因导致加载失败。 为了页面的人性化&#xff0c;在失败的时候通常会使用一张给定的图片替代。 <img src"logo.gif" onerror"javascript:this.srcdefault.gif" > //上面代码本来要加载logo.gif…

NGINX 配置超时时间

一、啥时候用到 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 用来设置请求资源和服务器返回的时间&#xff0c;保证一个请求占用固定时间&#xff0c;超出后报504超时&#xff01;这…

kettle变量(param命名参数)

1、定义&#xff1a; 编辑-设置-命名参数 在当前界面下定义参数名称和缺省值。 2、引用&#xff1a;原始数据 通过${var}引用变量 输出 注&#xff1a;1、字符串在命名参数引用是需要添加单引号的&#xff0c;但位置参数是不需要进行转译&#xff1b; 2、引用变量时需要勾选替换…

Excel操作

区间范围计算 方法一:用IF函数 方法二:构建一个辅助区域&#xff0c;用VLOOKUP函数 方法一:用IF函数 在F3中输入:IF(E3>90%,5%,IF(E3>80%,4%,IF(E3>70%,3%,IF(E3>60%,2%,1%)))) 向下拖动,搞定。 示例&#xff1a; IF(BB2<0.5,"50及以下",IF(AND(BB2&g…

养心灵,才能美容颜,拥有好日子(图)

“养心&#xff0c;就是在养颜”&#xff0c;说得多好啊。我们的脸是不会说谎的镜子&#xff0c;即使再巧妙的掩饰&#xff0c;也会在脸上显露出蛛丝马迹。 一个尖刻的人&#xff0c;嘴角的纹路必然多而杂;一个工于心计的人&#xff0c;脸色必定是阴沉暗淡的;一个无知的人&…

2020-4-2

题目一 利用事件冒泡原理实现了获取td单元格内容的功能。 <!DOCTYPE html> <html> <head> <meta charset" utf-8"> <style type"text/css"> #table{ width:300px; height:100px; border:1px solid #ccc; border-c…

AGC008D K-th K

题意简述&#xff1a;给你一个长度为\(N\)的整数序列\(x\)&#xff0c;请判断是否存在一个满足下列条件的整数序列\(a\)&#xff0c;如果存在&#xff0c;请构造一种方案。 1.\(a\)的长度为\(N^2\)并且满足数字\(1,2,3,\cdots,N\)都各出现恰好\(N\)次 2.对于\(1<i<N\)&am…

(一)prometheus与grafana介绍与安装

#&#xff08;1&#xff09;prometheus介绍 prometheus是一款 强大的监控系统和时序系统 采集数据&#xff1a; 在目标主机上安装exporter, exporter组件会在目标处收集监控数据, 并暴露一个http接口供prometheus查询, prometheus通过pull的方式来采集数据; 目前exporter已经采…

男人该知道的人生感悟(图)

一、家庭篇&#xff1a; 1、孝敬自己的父母&#xff0c;男人往往没有女人心细&#xff0c;所以你要经常提醒自己&#xff0c;常回家看看&#xff0c;不要等到“子欲养而亲不待”。 2、遇到事情&#xff0c;多听听父母的意见&#xff0c;他们是这个世界上最爱你的人。 3、好好…

2020-4-3

题目一 如何让IE8和IE8以下浏览器支持HTML5 <!–[if IE]> <script src"http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]–>上面这段代码仅会在IE浏览器下运行&#xff0c;还有一点需要注意&#xff0c;在页面中…