一、最近在带着Java服务端同学一起做一个新的项目,有一些基本的概念,无论是前端还是Java服务端,很多同学都是在按照经验办事,在一个公司的经验用很多年,经常容易犯经验主义的错误。
很多时候,最基础的概念,最基本的东西还是要懂的。

二、首先学习一个东西,方法很重要啊,需要先去官方网站去看看这个东西官方是怎么解读的,理解好了,再开发,而不是咔咔咔,搜索一下,照搬一些博客上的文章进行开发了,对一些最基本的东西还是要懂的。
特别是在学习一个技术的时候,它所依赖的一些其他的技术,请也一起了解下。
例如下面什么是HTTP协议、交互式WEB应用程序……都是需要了解下的

三、首先去维基百科看看,最权威的百科是怎么解读Cookie的
cookie维基百科

四、简介
Cookie(复数形态Cookies),中文名称为“小型文本文件”或“小甜饼”[1],指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。由网景公司的前雇员卢·蒙特利在1993年3月发明[2]。最初定义于RFC 2109。目前使用最广泛的 Cookie标准却不是RFC中定义的任何一个,而是在网景公司制定的标准上进行扩展后的产物。

五、分类
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在网络中的应用,他们的理由如下:
1.识别不精确
2.识别有时候会发生错误
3.隐私、安全和广告:
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。

十二、最后分享一个思否上写的较好的一篇关于Cookie的文章
聊一聊Cookie
希望能对大家有帮助!

聊一聊Cookie(结合自己的学习方法分享一篇维基百科和一篇segmentfault(思否)好文)...相关推荐

  1. vue项目全局配置微信分享_Vue项目history模式下微信分享总结-个人文章-SegmentFault思否...

    每回遇到微信分享都是一个坑,目前的商城项目使用vue开发,采用history的路由模式,配置微信分享又遇到了很多问题,最后终于解决了,现将解决的过程分享一下. 原文https://justyeh.to ...

  2. python页面转图片_网页转图片_技术分享 - SegmentFault 思否

    将一段文字转成图片,比如常用的长微博工具 这里用 PHP 来处理. text2pic composer require dsgygb/text2pic touch test.php require ' ...

  3. Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量

    Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量 from:https://www.leiphone.com/news/201712/zbX22Ye5wD6CiwCJ.html 导语 ...

  4. 【高效学习方法分享】费曼学习法

    费曼学习法 费曼学习法是美国著名物理学家理查德·费曼总结出来的一种学习方法.费曼学习法的核心是:"用转述.教给别人的方法巩固自己的知识".具体步骤包括四个步骤: 确定学习目标:将一 ...

  5. 高中阶段学计算机,高中阶段计算机学习方法分享

    38 ·教育现代化 高中阶段计算机学习方法分享 蚌埠第二中学(233000)邵帅卿 [摘 要]新时代背景下,计算机技术已经得到了迅速的发展,它给各行业的发展带来了极大的便利.可想而知,我们高中生应紧跟 ...

  6. 关于电子、通信专业学生、工程师学习方法分享

    原创李志锐 路飞的电子设计宝藏 2020-10-31 你可曾有这样的问题:没人带没人教?学起来慢?枯燥?提升缓慢?难以入门?对就业或考研没有概念?没有拿的出手的项目?大学规划或者职业规划不清晰? 如何 ...

  7. 大学如何拿到高绩点高成绩怎么拿到奖学金等985保研生学习方法分享

    我是双非保研到广州985华南理工大学的一名学生.拿过国家奖学金,我讲讲怎么拿奖学金和怎么拿高绩点. 中国交通优秀学子风采个人展示 中国交通优秀学子风采个人展示 - 知乎 推免的时候是以专业第一的成绩拿 ...

  8. web前端自学学习方法分享

    web前端自学学习方法分享 1.web前端自学学习误区总结 在分享给大家入门前端的学习方法之前,我们先来看看一些新手常犯的学习误区,大家可以引以为戒.比如盲目看太多书或各种学习视频,这样会迷失学习的方 ...

  9. 基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java框架的图书分享系统的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库 ...

  10. 计算机毕业设计JavaIT技术交流和分享平台的设计与实现(源码+系统+mysql数据库+lw文档)

    计算机毕业设计JavaIT技术交流和分享平台的设计与实现(源码+系统+mysql数据库+lw文档) 计算机毕业设计JavaIT技术交流和分享平台的设计与实现(源码+系统+mysql数据库+lw文档) ...

最新文章

  1. gdc服务器老显示drs,VMware ESXi 高可用之drs
  2. 2019 Python100道 面试 题,你会几道?
  3. Python3 pip安装包时报错 error: Microsoft Visual C++ 14.0 is required.解决办法
  4. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用
  5. 图片链接生成器软件_推荐10个小众但是黑科技十足的Windows软件
  6. MVC Scaffolding SmartCode-Engine 更新
  7. 【caffe-Windows】关于LSTM的简单小例子
  8. 信息学奥赛一本通 1040:输出绝对值 | OpenJudge NOI 1.4 02
  9. java cygwin,cygwin和java
  10. 【高校宿舍管理系统】第十章 缺勤管理、报修管理、来访人员管理以及公告管理
  11. Qt中实现鼠标作图并且控制每一笔粗细和颜色的方法
  12. ubuntu 个人常用的命令
  13. 趣味算法图解,文科生都看懂了
  14. zblog修改上传服务器,zblog模板怎么上传?zblog模板怎么替换logo?zblog及zblog模板和插件...
  15. 说话人识别(声纹识别)综述
  16. html 表格和表单知识点
  17. 杰米棋牌开发商打造经典棋牌游戏
  18. IDEA编译器Debug方法启动:method breakpoints may dramatically slow down debugging
  19. 关于手机定位精度的调研报告
  20. 英特尔投资部宣布增投10家新创公司,他们都有哪些能耐?---ESM

热门文章

  1. 端到端车道线检测_弱监督对象检测-端到端培训管道
  2. python assert简单记忆方法
  3. java 线程condition_(七)java多线程之Condition
  4. matlab 流水灯,Matlab生成stm32代码
  5. nginx php 慢,Nginx+PHP-FPM时快时慢的解决
  6. qfile.remove 删除已经被加载的文件_Milvus数据管理:删除的实现原理
  7. java adt真机调试_Unity Android 真机调试
  8. 各种排序算法总结和比较
  9. Mac OS 加入域
  10. 在iOS中获取UIView的所有层级结构 相关