13. 瀏覽器儲存方案

Justin Lin
Justin LinTechnology / Community Evangelist at Free lancer
13. 瀏覽器儲存方案
13. 瀏覽器儲存方案
• 學習目標
– 認識Cookie
– 使用Web Storage
– 操作Indexed Database
2
Cookie
• 為了在無狀態協定上支援狀態管理
• 現在最新的規範為RFC 6265
• Cookie可儲存的資訊量非常有限
3
Cookie安全
• Domain屬性可用來指定,Cookie可以送往哪
些網域
– 在沒有指定的情況下,預設為來源網域,而且不包
含子網域
– 如果設定了Domain屬性,就會包含設定網域之子
網域
• Path屬性用來指定Cookie可以送往網域下哪
些目錄(包含子目錄),在沒有設置的情況下,
預設是來源目錄
• 相同Domain與Path的資料會存為一個檔案
4
• RFC 6265規範伺服端設置Cookie時,可以
附加HttpOnly屬性,令Cookie僅可用於
HTTP傳輸,不能被JavaScript讀取。
• RFC 6265也規範了伺服端設置Cookie時,
可以附加Secure屬性,要求客戶端只能在
安全連線(例如HTTPS加密)發送Cookie
5
document.cookie
• 客戶端要設置Cookie與Set-Cookie標頭
無關
• 只要對document.cookie設定'k1=v1'
形式的字串,就會直接在瀏覽器儲存
Cookie
6
7
8
• 若要透過document.cookie設置Cookie
屬性,格式與Set-Cookie時的要求相同
• 每設定一次就會產生一個Cookie
• 對document.cookie取值,並非取得最
後設定的Cookie,而是個
'k1=v1;k2=v2'格式的字串
9
10
11
12
13
14
Web Storage
• 可以透過sessionStorage或
localStorage在客戶端儲存資訊
• Web Storage與HTTP沒有關係
• 對於不用在請求中發送給伺服端的狀態,
可以使用Web Storage儲存
15
• 主要規範了Storage、sessionStorage、
localStorage介面,以及storage事件
• Storage介面定義了key()、getItem()、
setItem()、removeItem()、clear()
方法,以及length特性
16
• localStorage為同源的頁面提供一個
Storage實例
• 儲存的資料可以長期保存,關閉瀏覽器後
資料不會消失
• 不提供過期時間的機制,不需要的資料必
須自行刪除
17
• sessionStorage與HTTP會話的狀態管理
沒有關係,而是指每個頂層瀏覽環境各自
的狀態
• 每個頂層頁面各擁有一個Storage實例
• 如果使用多個分頁請求同一來源的資源,
每個分頁各自會擁有一個Storage實例
• 分頁間不能共用資料,在分頁關閉後,資
料就會消失
18
19
20
21
storage事件
• 若有Storage實例因為執行了setItem()、
removeItem()與clear()方法,導致
Storage實例儲存的內容「不同」,「其
他共享Storage實例的文件」,window實
例就會觸發storage事件
• 沒有改變內容,只是又設定相同值,並不
會觸發事件
• 當前文件,不會觸發storage事件
22
23
24
25
26
Indexed Database
• W3C在2015年1月發佈
• 對象並非關聯式資料庫,也沒有SQL語句的
支援,而像是NoSQL資料庫
• 2018年1月更進一步發佈了Indexed
Database API 2.0
27
• 並非關聯式資料庫
• 相關API是基於非同步
• 可儲存的資料類型不限於字串,也可儲存
ArrayBuffer等二進位資料實例
• 基於同源策略,只能存取相同來源的資料
庫
28
• open()方法傳回IDBOpenDBRequest實
例,代表對資料庫的開啟請求
• 開啟成功會觸發success事件,發生錯誤
會觸發error事件
• result可取得IDBDatabase實例
29
30
• 如果儲存的資料是物件,可以為物件的特
性名稱建立索引(Index),之後可以根據
索引來查找資料
31
• 若要存取資料庫,都必須在交易
(Transaction)中進行
• 開啟交易是透過IDBDatabase實例的
transaction()方法
32
33
34
35
36
37
封裝資料庫操作
38
39
40
41
42
43
44
1 of 44

Recommended

MIS MySQL 入門 by
MIS MySQL 入門MIS MySQL 入門
MIS MySQL 入門均民 戴
569 views17 slides
1.4 go在数据存储上面的应用—毛剑 by
1.4 go在数据存储上面的应用—毛剑1.4 go在数据存储上面的应用—毛剑
1.4 go在数据存储上面的应用—毛剑Leo Zhou
405 views39 slides
Hdfs by
HdfsHdfs
Hdfsjiang yu
559 views29 slides
高性能队列Fqueue的设计和使用实践 by
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
10.8K views25 slides
Hacking Nginx at Taobao by
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
4.3K views55 slides
Tair by
TairTair
TairOpenSourceCamp
999 views16 slides

More Related Content

What's hot

關聯式資料庫系統的規劃 by
關聯式資料庫系統的規劃關聯式資料庫系統的規劃
關聯式資料庫系統的規劃Simon Huang
7.5K views33 slides
阿里CDN技术揭秘 by
阿里CDN技术揭秘阿里CDN技术揭秘
阿里CDN技术揭秘Joshua Zhu
4.9K views40 slides
Ch05 Servlet進階API、過濾器與傾聽器 by
Ch05 Servlet進階API、過濾器與傾聽器Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器Justin Lin
504 views70 slides
MySQL快速入门与提高 by
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高mysqlpub
971 views14 slides
redis 适用场景与实现 by
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
27K views20 slides
第一讲 My sql初步 by
第一讲 My sql初步第一讲 My sql初步
第一讲 My sql初步hjl888666
223 views51 slides

What's hot(20)

關聯式資料庫系統的規劃 by Simon Huang
關聯式資料庫系統的規劃關聯式資料庫系統的規劃
關聯式資料庫系統的規劃
Simon Huang7.5K views
阿里CDN技术揭秘 by Joshua Zhu
阿里CDN技术揭秘阿里CDN技术揭秘
阿里CDN技术揭秘
Joshua Zhu4.9K views
Ch05 Servlet進階API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet進階API、過濾器與傾聽器Ch05 Servlet進階API、過濾器與傾聽器
Ch05 Servlet進階API、過濾器與傾聽器
Justin Lin504 views
MySQL快速入门与提高 by mysqlpub
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高
mysqlpub 971 views
redis 适用场景与实现 by iammutex
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
iammutex27K views
第一讲 My sql初步 by hjl888666
第一讲 My sql初步第一讲 My sql初步
第一讲 My sql初步
hjl888666223 views
Redis 常见使用模式分析 by vincent253
Redis 常见使用模式分析Redis 常见使用模式分析
Redis 常见使用模式分析
vincent2534.1K views
高性能Web应用缓存架构设计浅谈 by Alvin Qi
高性能Web应用缓存架构设计浅谈高性能Web应用缓存架构设计浅谈
高性能Web应用缓存架构设计浅谈
Alvin Qi749 views
Redis介绍 by zhaolinjnu
Redis介绍Redis介绍
Redis介绍
zhaolinjnu31.7K views
Ch10 Web容器安全管理 by Justin Lin
Ch10 Web容器安全管理 Ch10 Web容器安全管理
Ch10 Web容器安全管理
Justin Lin384 views
利用新硬件提升数据库性能 by Feng Yu
利用新硬件提升数据库性能利用新硬件提升数据库性能
利用新硬件提升数据库性能
Feng Yu1.9K views
“云存储系统”赏析系列分享三:Sql与nosql by knuthocean
“云存储系统”赏析系列分享三:Sql与nosql“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean22.4K views
了解内存 by Feng Yu
了解内存了解内存
了解内存
Feng Yu5.8K views
Buffer pool implementaion inno db vs oracle by frogd
Buffer pool implementaion inno db vs oracleBuffer pool implementaion inno db vs oracle
Buffer pool implementaion inno db vs oracle
frogd3.9K views
Memcached浅析 韩建华 by youzitang
Memcached浅析 韩建华Memcached浅析 韩建华
Memcached浅析 韩建华
youzitang1.2K views
MySQL新技术探索与实践 by Lixun Peng
MySQL新技术探索与实践MySQL新技术探索与实践
MySQL新技术探索与实践
Lixun Peng501 views
MySQL技术分享:一步到位实现mysql优化 by Jinrong Ye
MySQL技术分享:一步到位实现mysql优化MySQL技术分享:一步到位实现mysql优化
MySQL技术分享:一步到位实现mysql优化
Jinrong Ye5.1K views
服务器基准测试-叶金荣@CYOU-20121130 by Jinrong Ye
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
Jinrong Ye3.8K views
Style基础优化之独角兽篇 by fangdeng
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇
fangdeng199 views

Similar to 13. 瀏覽器儲存方案

Zh tw introduction_to_hadoop and hdfs by
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsTrendProgContest13
8.1K views28 slides
The Rails 4 Way Chapter 1 by
The Rails 4 Way Chapter 1The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1Drake Huang
181 views20 slides
File api by
File apiFile api
File apiMr_BackKom
1 view11 slides
File api by
File apiFile api
File apiMr_BackKom
274 views11 slides
Bypat博客出品-服务器运维集群方法总结2 by
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
696 views38 slides
Bypat博客出品-服务器运维集群方法总结 by
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结redhat9
882 views38 slides

Similar to 13. 瀏覽器儲存方案(13)

The Rails 4 Way Chapter 1 by Drake Huang
The Rails 4 Way Chapter 1The Rails 4 Way Chapter 1
The Rails 4 Way Chapter 1
Drake Huang181 views
Bypat博客出品-服务器运维集群方法总结2 by redhat9
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
redhat9696 views
Bypat博客出品-服务器运维集群方法总结 by redhat9
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
redhat9882 views
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場 by twMVC
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
雲端環境的快取策略-Global Azure Bootcamp 2015 臺北場
twMVC696 views
云梯的多Namenode和跨机房之路 by li luo
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
li luo411 views
Azure 迁移之道 by Tao Wang
Azure 迁移之道Azure 迁移之道
Azure 迁移之道
Tao Wang521 views
豆瓣网技术架构变迁 by reinhardx
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx1.5K views
Bypat博客出品-服务器运维集群方法总结3 by redhat9
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3
redhat91K views
Web dev road map part one by 安 闫
Web dev road map part oneWeb dev road map part one
Web dev road map part one
安 闫185 views
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理 by Justin Lin
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Justin Lin2.5K views

More from Justin Lin

Ch14 簡介 Spring Boot by
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
872 views22 slides
Ch13 整合 Spring MVC/Security by
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityJustin Lin
280 views58 slides
Ch12 Spring 起步走 by
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
274 views31 slides
Ch11 簡介 JavaMail by
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
157 views8 slides
Ch10 Web 容器安全管理 by
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
153 views30 slides
Ch09 整合資料庫 by
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
233 views92 slides

More from Justin Lin(20)

Ch14 簡介 Spring Boot by Justin Lin
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin872 views
Ch13 整合 Spring MVC/Security by Justin Lin
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin280 views
Ch12 Spring 起步走 by Justin Lin
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin274 views
Ch11 簡介 JavaMail by Justin Lin
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin157 views
Ch10 Web 容器安全管理 by Justin Lin
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin153 views
Ch09 整合資料庫 by Justin Lin
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin233 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin133 views
Ch07 使用 JSTL by Justin Lin
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin161 views
Ch06 使用 JSP by Justin Lin
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin250 views
Ch05 Servlet 進階 API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin204 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin238 views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin236 views
Ch02 撰寫與設定 Servlet by Justin Lin
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin352 views
CH1. 簡介 Web 應用程式 by Justin Lin
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin1.2K views
14. 進階主題 by Justin Lin
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin406 views
13.並行、平行與非同步 by Justin Lin
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin237 views
12. 除錯、測試與效能 by Justin Lin
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin153 views
11. 常用內建模組 by Justin Lin
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin149 views
10. 資料永續與交換 by Justin Lin
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin156 views
9. 資料結構 by Justin Lin
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin292 views

13. 瀏覽器儲存方案