【计算机网络笔记】Cookie技术

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)------速率、带宽、延迟
计算机网络性能(2)------时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)



Cookie技术为什么会诞生?

前面提过,HTTP协议是无状态的,也就是说服务器不会记录客户机的历史行为。但是很多应用是需要记录用户的会话的,比如网上购物,如果是无状态的,那购物车是怎么实现的?

显然,原有的HTTP协议已经不够用了,就引入了新的技术,即Cookie技术。它是架设在HTTP协议上的。


Cookie技术是什么?

某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。(RFC6265)


Cookie的组件

  • 在HTTP响应消息中添加cookie头部行

  • 在HTTP请求消息中添加cookie头部行

  • 在客户端主机上建立一个cookie文件,并且由浏览器管理

  • 在服务器端建立后台数据库


Cookie的原理

假定一个用户原来没有访问过Amazon网站。浏览器这边有一个cookie文件 ,里面现在只有一行信息,还没有任何跟Amazon网站相关的信息。客户端首先使用常规的http请求消息(不带cookie头部行),当服务器收到这个请求后,它发现没有cookie,说明请求方这是一个新用户,那就给这个用户创建一个ID号 ,比如图中的1678,然后将用户的信息和ID号放到数据库 中记录下来。然后在返回的响应消息里面的头部行中添加Set-cookie字段,它的值就是前面创建的ID号。浏览器收到这个响应消息后将这一行解析出来,然后在自己的cookie文件中加上:amazon:1678,记录自己在Amazon这个网站上唯一的标识号。再次访问这个网站的时候,请求消息的头部行中就增加了一行:cookie:1678。这时服务器收到这个请求消息并解析后就知道这是1678那个用户,就去数据库中查询这个用户相关的信息。这个时候服务器就可以做出面向用户(cookie)特定的动作。

我们都经历过这种情况,比如网站会根据我们买过什么或看过什么来推送一些其他东西和内容。


Cookie的用途

  • 用于身份认证。让我们可以短期时间内登录都不需要用户名和密码。
  • 购物车。保存我们之前添加过的东西。
  • 推荐。根据我们的浏览记录推送相关内容。
  • ......

可以说cookie无处不在。


Cookie存在的问题

最大的问题就是隐私问题。我们的一举一动都是被检测和记录的。我们的这些数据可能被有意或无意的泄露。

所以很多IT厂商都在研究cookie的替代技术。

相关推荐
新子y5 分钟前
【小白笔记】最大交换 (Maximum Swap)问题
笔记·python
你要飞4 小时前
Hexo + Butterfly 博客添加 Live2D 看板娘指南
笔记
IT帮6 小时前
2020年08月份04741计算机网络原理真题及答案
计算机网络
ajsbxi7 小时前
【Java 基础】核心知识点梳理
java·开发语言·笔记
呱呱巨基7 小时前
vim编辑器
linux·笔记·学习·编辑器·vim
新子y8 小时前
【小白笔记】普通二叉树(General Binary Tree)和二叉搜索树的最近公共祖先(LCA)
开发语言·笔记·python
聪明的笨猪猪8 小时前
Java JVM “调优” 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
爱学习的uu8 小时前
CURSOR最新使用指南及使用思路
人工智能·笔记·python·软件工程
YuCaiH8 小时前
Linux文件处理
linux·笔记·嵌入式
Cathy Bryant8 小时前
大模型损失函数(二):KL散度(Kullback-Leibler divergence)
笔记·神经网络·机器学习·数学建模·transformer