-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy path20190125-B-JAVA-5.html
224 lines (213 loc) · 10.6 KB
/
20190125-B-JAVA-5.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>葡萄藤PPT</title>
<link rel="stylesheet" href="https://ptteng.github.io/PPT/css/reveal/reveal.css">
<!-- PPT主题,可以在/css/reveal/theme/中选择其他主题,目前暂时只能使用该模板 -->
<link rel="stylesheet" href="https://ptteng.github.io/PPT/css/reveal/theme/ptt.css">
<!-- syntax highlighting 代码高亮主题 -->
<link rel="stylesheet" href="https://ptteng.github.io/PPT/lib/reveal/css/zenburn.css">
<!-- 打印和PDF输出样式 -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? './css/reveal/print/pdf.css' : '../css/reveal/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<style>
.left{ text-align: left; }
</style>
</head>
<body>
<img src="https://ptteng.github.io/PPT/img/demo/logo.png" alt="" usemap="#pttmap" class="base-logo">
<map name="pttmap">
<area shape="rect" coords="0,0,276,58" href="http://www.jnshu.com" alt="" target="_blank"/>
</map>
<div class="reveal">
<div class="slides">
<section>
<h2>什么是session?什么是cookie?session和cookie有什么区别?什么场景适用于session?什么场景适用于cookie?</h2>
<p>分享人:李雨航</p>
</section>
<section>
<p>1.背景介绍</p>
<p>2.知识剖析</p>
<p>3.常见问题</p>
<p>4.编码实战</p>
<p>5.扩展思考</p>
<p>6.参考文献</p>
<p>7.更多讨论</p>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
<h3>1.背景介绍</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p></p>
<p>什么是session</p>
<p>session 从字面上讲,就是会话</p>
<p>在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象)</p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p></p>
<p></p>
<p></p>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
<h3>2.知识剖析</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>session讲解</p>
<p>服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。</p>
<p></p>
<p>Session是在无状态的HTTP协议下,服务端记录用户状态时用于标识具体用户的机制。
它是在服务端保存的用来跟踪用户的状态的数据结构,可以保存在文件、数据库或者集群中。在浏览器关闭后这次的Session就消失了,下次打开就不再拥有这个Session。
其实并不是Session消失了,而是Session ID变了,服务器端可能还是存着你上次的Session ID及其Session 信息,只是他们是无主状态,也许一段时间后会被删除。</p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>什么是cookie</p>
<p>cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。</p>
<p>cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。
由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。Cookie具有不可跨域名性。</p>
<p></p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
<h3>3.常见问题</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>session和cookie区别</p>
<p><p/>
<p><p/>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>什么场景适用于session?什么场景适用于cookie?</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<h3>4.编码实战</h3>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<h3>5.扩展思考</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>token,就是我们常说的用户身份令牌。</p>
<p>只有涉及到受限资源的访问时候才需要身份令牌,所以,在访问开放资源时候http中是没有token的信息的,也即是说这时候会话是完全无状态的。
token的是在用户登录以后生成的。用户登录之后我们会生成一个token作为key保存用户的信息并返回给客户端。保存方式set(token,用户信息)存储到redis等介质。
之后客户端发起的请求只要在请求头中附带token的信息就可以完成身份认证。</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p><img src="C:\0.jpg"></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)。</p>
<p>该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。
JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。</p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p><img src="C:\11.jpg"></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
</section>
<section>
<h3>6.参考文献</h3>
<p>https://www.itcodemonkey.com/article/11254.html</p>
<p>https://www.cnblogs.com/linguoguo/p/5106618.html</p>
</section>
<section>
<h3>7.更多讨论</h3>
</section>
<section>
<h3>分享到此结束</h3>
<p></p>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
</section>
</section>
</div>
</div>
<script src="https://ptteng.github.io/PPT/lib/reveal/js/head.min.js"></script>
<script src="https://ptteng.github.io/PPT/lib/reveal/reveal.js"></script>
<script>
// 以下为常见配置属性的默认值
// {
// controls: true, // 是否在右下角展示控制条
// progress: true, // 是否显示演示的进度条
// slideNumber: false, // 是否显示当前幻灯片的页数编号,也可以使用代码slideNumber: 'c / t' ,表示当前页/总页数。
// history: false, // 是否将每个幻灯片改变加入到浏览器的历史记录中去
// keyboard: true, // 是否启用键盘快捷键来导航
// overview: true, // 是否启用幻灯片的概览模式,可使用"Esc"或"o"键来切换概览模式
// center: true, // 是否将幻灯片垂直居中
// touch: true, // 是否在触屏设备上启用触摸滑动切换
// loop: false, // 是否循环演示
// rtl: false, // 是否将演示的方向变成RTL,即从右往左
// fragments: true, // 全局开启和关闭碎片。
// autoSlide: 0, // 两个幻灯片之间自动切换的时间间隔(毫秒),当设置成 0 的时候则禁止自动切换,该值可以被幻灯片上的 ` data-autoslide` 属性覆盖
// transition: 'default', // 切换过渡效果,有none/fade/slide/convex/concave/zoom
// transitionSpeed: 'default', // 过渡速度,default/fast/slow
// mouseWheel: true, //是否启用通过鼠标滚轮来切换幻灯片
// }
// 初始化幻灯片
Reveal.initialize({
history: true,
dependencies: [
{ src: './plugin/markdown/marked.js' },
{ src: './plugin/markdown/markdown.js' },
{ src: './plugin/notes/notes.js', async: true },
{ src: './plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>