cookie的工作原理_干架小白的博客-程序员宅基地_cookie的工作原理

1.cookie的机制
在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。
而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。要跟踪该会话,必须引入一种机制。

Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。

2.什么是cookie,cookie的工作原理
Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_47257428/article/details/116980623

智能推荐

安装 PHP_weixin_34268310的博客-程序员宅基地

Reference:  https://www.mf8.biz/debian-install-php7-2/ 安装 PHPOndřej Surý 的 PHP PPA 为 Ubuntu 16.04/14.04 提供了 PHP7.2 版本,同时也有通过个人网站为 Debian 9/8 提供 PHP7.2 版本,因此 Ubuntu 是源于 Debian 所以基本可以通用,同时维护难度较低,软件源安...

Linux下搭建单机版FastDFS_weixin_33796177的博客-程序员宅基地

2019独角兽企业重金招聘Python工程师标准>>> ...

常用Linux命令备忘_weixin_30337157的博客-程序员宅基地

------------------------------------------------------------------------------1.加压gz 文件的命令:tar -zxvf nginx-1.9.4.tar.gz把linux文件夹压缩成tar.gz的命令解压 tar zxvf 文件名.tar.gz压缩 tar zcvf 文件名.tar.gz 目标名----...

Java面试题(九)设计模式_豪大大ya的博客-程序员宅基地

88.说一下你熟悉的设计模式?89.简单工厂和抽象工厂有什么区别?

html页面加载蒙版_css3小圆点实现loading加载蒙版_张林威的博客-程序员宅基地

源码如下 没有什么好解释的 博主只测试了手机端body{width: 100%;smargin: 0 auto;height: 3000px;}.div_load{width:15px;height:15px;float: ;position:fixed;bottom: 52%;border-radius: 8px;animation:loading 5s infinite;-webkit-ani...

IOS网络入门-Socket套接字_Phyllis2016的博客-程序员宅基地

Tip1:网络基础1.计算机网络三部分组成:(1)资源子网:面向用户的部分,负责全网络面向应用的数据处理。(2)通信子网:负责数据通信(3)通信协议:通信双方必须遵守的规则和约定。2.分类:广域网、局域网3.网络体系结构OSI(Open System Interconnection)开放系统网络互联:(1)物理层:物理设备,原始比特流传输(2)数据链路层:网

随便推点

makefile 传递宏_音脆试听的博客-程序员宅基地_makefile 传递宏

方法1:makefield如下,为了使宏生效在命令行编译时 执行make "CXXFLAG += -DDEBUG"CXX = g++ifdef CXXFLAGCXXFLAG +=elseCXXFLAG = -Wall -gCXXFLAG += -DDEBUGendifLDFLAGS +=INCS = -I../incSRCS = ./BUILDDIR = ./LIBS += -L../lib/MAINSRCS = $(foreach dir,${shell find...

pillow模块Image.crop()函数切割图片方法,参数说明_DaYinYi的博客-程序员宅基地_img.crop

使用Image.crop()方法对图片进行切割。参数:Image.crop(left, up, right, below)left:与左边界的距离up:与上边界的距离right:还是与左边界的距离below:还是与上边界的距离简而言之就是,左上右下。例子:将一张花图片切分成9张(3*3)图片:from PIL import Imagefilename = r'F:\研二\壁纸\花.jfif'img = Image.open(filename)size =

thyemeleaf学习要点心得_游龙入戏的博客-程序员宅基地

一、thymeleaf模板子页面引用JS,CSS,HTML的方法:这是我的目录结构1,引用JS文件首先将公共资源提取出来放在单独的一个html中,并加入thymeleaf模板的引用然后,在<div>中引用thymeleaf的th:fragment=“自定义一个名称” 标签,<script th:src="@{公共资源JS路径}">。<!DOC...

Django 路由配置 (二)_久醉绕心弦,的博客-程序员宅基地

django处理请求Django 和其他 Web 框架的 Http 处理的流程大致相同,web服务器软件或者模块(wsgiref)会把http 发送的请求封装成了一个 Request 对象, Django 处理一个 Request 的过程首先是通过中间件,然后再通过默认的 URL 方式进行的. 我们可以在中间件(middleware)这个地方把所有 Request 拦截住,用我们自己的方式完成处理以后直接返回 Response。路由的过程:1.当发起请求时,首先会根据项目目录下的根路由URLconf

NSIS 解决 side-by-side configuration error_专注的流浪猫的博客-程序员宅基地

用NSIS制作的安装包,在没有安装VC运行环境的情况下,运行该安装包结束后,启动程序,可能会出现side-by-side configuration error。解决该问题的办法就是下载vc_red.cab 和vc_red.msi,双击运行vc_red.msi(实际上是安装vc_red.cab),安装完成后再运行程序则不会出现该错误。  我们也可以直接将这两个文件放进安装包中。这样运行安装

车联网总结_liangcb的博客-程序员宅基地

一句话:根据车联网产业技术创新战略联盟的定义,车联网是以车内网、车际网和车载移动互联网为基础,按照约定的通信协议和数据交互标准,在车-X(X:车、路、行人及互联网等)之间,进行无线通讯和信息交换的大系统网络,是能够实现智能化交通管理、智能动态信息服务和车辆智能化控制的一体化网络,是物联网技术在交通系统领域的典型应用。摘自百度百科...