小文本——Cookies
转自:http://blog.csdn.net/wangyangzhizhou/article/details/44277843
http协议的无状态性导致在需要会话的场景下寸步难行,例如一个网站为了方便用户,在一段时间内登录过该网站的浏览器客户端实现自动登录,为实现这种客户端与服务器之间的会话机制需要额外的一些标识,http头部引入的Cookies正是客户端与服务器会话机制的基础。当一个浏览器通过http协议访问某服务器时,服务器可以将指定的一些键值对发往客户端,客户端根据域名保存于本地,下次访问此域名时浏览器会连同此些键值对带到服务器端,这样就实现了服务器与客户端之间的会话机制。
① 客户端第一次访问的报文(无cookies):
GET /web/index.jsp HTTP/1.1
Accept-Language:zh-CN
User-Agent:Mozilla/5.0(Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63Safari/537.36
HOST:localhost:8080
Connection:Keepp-Alive
② 服务器响应报文:
HTTP/1.1 200 OK
Content-Length: 3000
Content-Type:text/html;charset=utf-8
Set-Cookie:user=lilei;weight=70kg
Connection: Keep-Alive
③ 客户端第二次访问(带cookies):
GET /web/index.jsp HTTP/1.1
Accept-Language:zh-CN
User-Agent:Mozilla/5.0(Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63Safari/537.36
HOST:localhost:8080
Connection:Keepp-Alive
Cookie:user=lilei;weight=70kg
第一次访问localhost:8080/web/index.jsp时浏览器搜索本地无相关cookies,服务器接收报文后做出响应,通过http协议的Set-Cookies头部把user=lilei;weight=70kg返回浏览器,浏览器把cookies信息保存到本地,第二次访问时浏览器搜到有相关的cookies并发往服务器,服务器收到信息知道此浏览器之前是lilei用户使用,并且他的体重是70kg,服务器可根据用户信息做一些个性化处理,这就是cookies。
Cookies将信息储存在客户端,每次通信都要将这些信息附带在报文里面,这会导致带宽浪费、敏感数据安全、对复杂结构数据力不从心等等问题,每次访问都把cookies发送到服务器,当cookies较大时明显有带宽浪费问题,假如将用户名密码放到客户端显然存在安全问题,cookies对于非键值对结构的数据肯定力不从心。针对这些问题提出一种解决方案——服务器会话Session,将数据存在服务器无需客户端携带,数据安全更加可控且数据结构可以任意复杂。当然,这种Session的实现也要依靠cookies,服务器把一个唯一值JSESSIONID发往客户端,每个唯一值表示一个客户端,客户端与服务器通信时携带此唯一值,服务器根据唯一值寻找属于此客户端的所有数据。服务器会话并非本章节要讨论的重点,将在后面相关章节再深入探讨实现原理。
重新回到cookies,浏览器将cookies发往tomcat服务器后,tomcat需要将这些信息封装成对象,如下图,Cookies对象包含了若干个ServerCookie,而每个ServerCookie主要包含了name和value,即键值对。当然还包括其他参数,例如maxAge表示cookie过期时间,path表示cookie存放子路径,domain表示服务器主机名。另外还有其他参数,读者可自行查阅http协议的cookie标准,有个参数需要特别说明下,secure参数表示是否使用SSL安全协议发送cookies,避免明文被网络拦截。这些变量保存在Tomcat中的类型都为MessageBytes,即以字节数组形式存储在内存中,好处就是避免多余的转码操作影响性能。
小文本——Cookies相关推荐
- html图片如何和输入框并排,闪亮的4个小文本输入框并排
释义(并简化为2个输入的情况),您的问题是: runApp(list( ui = bootstrapPage( textInput(inputId="xlimitsmin", la ...
- JavaEE 要懂的小事:二、图解 Cookie(小甜饼)
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- linux中将文本中的单词换掉的指令_为什么说从PDF中提取文本是一件困难的事?...
PDF文档处理工作中,总是绕不开对文本提取的需求.很多用户觉得我们PDFlux好用,所以对其中的底层技术也非常感兴趣.也有人为认为,从PDF里抽取文本段落和表格,应该非常简单! 近期,我们会对PDF文 ...
- android 文本左对齐,在Android中与文本左可绘制对齐
我是自定义视图的新手,对android中的画布了解不多, 我想将左可绘制对象与该图像相同的textview的文本(无论是否为多行)与布局的右侧对齐(如该图像所示) 在上面的图像中,我想将$图像与文本对 ...
- 根据大小分割大文本_场景文本检测—CTPN算法介绍
SIGAI特约作者:沪东三哥 原创声明:本文为SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的. 其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算 ...
- 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST)
文字识别分为两个具体步骤:文字的检测和文字的识别,两者缺一不可,尤其是文字检测,是识别的前提条件,若文字都找不到,那何谈文字识别.今天我们首先来谈一下当今流行的文字检测技术有哪些. 文本检测不是一件简 ...
- 端到端文本检测与识别——FOTS
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013063099/article/details/89236368 常见的深度学习OCR过程中,会 ...
- 文字识别(五)--自然场景文本检测技术综述(CTPN, SegLink, EAST)
转自:https://www.cnblogs.com/skyfsm/p/9776611.html 文字识别分为两个具体步骤:文字的检测和文字的识别,两者缺一不可,尤其是文字检测,是识别的前提条件,若文 ...
- 文本检测 论文阅读笔记之 Pixel-Anchor: A Fast Oriented Scene Text Detector with Combined Networks
Pixel-Anchor: A Fast Oriented Scene Text Detector with Combined Networks 摘要:最近语义分割和通用对象检测框架已被场景广泛采用文 ...
最新文章
- Opengl-光照章节学习成果
- boost::mp11::mp_set_intersection相关用法的测试程序
- Java更改中文_Java中文编程开发,让Java编写更改复杂
- line-height与图片底部间隙的学习整理转述
- jquery练习——简单的图片结果展示效果
- 【Vue起步-Windows】N01:环境安装
- vue分页组件重置到首页问题
- 怎么把英文字幕翻译成中文?快把这些方法收好
- Android 小米推送服务集成
- 玩转b站:实用的b站工具合集
- 当代计算机科学的先驱John Todd逝世
- linux下pdb文件除水,blast+本地化中blastp操作(基于PDB库)—linux
- 2 什么是计算机网络设置密码,怎么设置电脑网络密码
- config配置中文解释
- 【转】跨终端实践-天猫试戴的解决方案
- CIS基准测试工具kube-bench使用
- 深入理解MyBatis(七)—MyBatis事务
- Android 解决 adapter.notifyDataSetChanged() 不起作用
- 【字符识别】模板匹配(区域生长法)字母+数字识别【含Matlab源码 1214期】
- 媒体揭露互联网“账号黑市”:百倍暴利
热门文章
- 通过jsp向mysql批量导入数据_通过JSP+JavaBean对mysql进行添加数据的操作
- skt7850鸿蒙策略,SKT九连跪,牛肉面
- IDEA 打包 spark 程序 并在远程 hadoop HA 上运行测试
- android 常用加密,分享一下Android各种类型的加密
- CSP初赛篇·知识大纲(未完成)
- php phantomj,射手网复活攻略:用百度快照和phantomjs让射手网起死回生
- c语言大小箱子,基于C语言箱子游戏.doc
- 20220906美的集团笔试
- C语言:链表实现二进制数加1运算
- k8s上部署Harbor通过Nginx-Ingress域名访问