六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

對于http前端存儲的總結

[摘要]本篇文章分享給大家的內容是關于http前端存儲的總結,內容很詳細,接下來我們就來看看具體的內容,希望可以幫助到有需要的朋友。cookie為什么會有cookiehttp協議的無狀態,所謂無狀態即是服務器并不是知道這次的請求和上次的請求是不是同一個client發來的,就好比你經常去一家超市買東西,老板...
本篇文章分享給大家的內容是關于http前端存儲的總結,內容很詳細,接下來我們就來看看具體的內容,希望可以幫助到有需要的朋友。

cookie

為什么會有cookie

http協議的無狀態,所謂無狀態即是服務器并不是知道這次的請求和上次的請求是不是同一個client發來的,就好比你經常去一家超市買東西,老板并不記得你是誰。但是如果你每次帶著你的會員卡過來,那么老板就可以識別出你是誰了,cookie的作用類似于會員卡起的作用。

大概流程

當服務器收到HTTP請求時,服務器可以在響應頭里面添加一個Set-Cookie選項。瀏覽器收到響應后通常會保存下Cookie,之后對該服務器每一次請求中都通過Cookie請求頭部將Cookie信息發送給服務器。另外,Cookie的過期時間、域、路徑、有效期、適用站點都可以根據需要來指定。

當然了,瀏覽器端也可以操作cookie,document.cookie可以獲取當前頁面的所有cookie。

細節

domain、path

這兩個屬性決定了cookie是否會被發往哪些URL

Domain 標識指定了哪些主機可以接受Cookie。如果不指定,默認為當前文檔的主機(不包含子域名)。如果指定了Domain,則一般包含子域名。

例如,如果設置 Domain=mozilla.org,則Cookie也包含在子域名中(如developer.mozilla.org)。

Path 標識指定了主機下的哪些路徑可以接受Cookie(該URL路徑必須存在于請求URL中)。以字符 %x2F ("/") 作為路徑分隔符,子路徑也會被匹配。

例如domain=qq.com,path=/blog,則該cookie會被發往:

  • qq.com/blog

  • wx.qq.com/blog

  • wx.qq.com/blog/aa

  • ....

expires、max-age

這兩個屬性決定了cookie在瀏覽器保存多久

具體的細節為:

  • Expires 為 Cookie 的刪除設置一個過期的日期

  • Max-age 設置一個 Cookie 將要過期的秒數

  • IE 瀏覽器(ie6、ie7 和 ie8) 不支持 max-age,所有的瀏覽器都支持 expires

  • 如果同時設置了expires和max-age,那么支持max-age的瀏覽器會忽略expires的值,不支持max-age的瀏覽器會忽略max-age只支持expires

  • 如果expires和max-age都不設置,該cookie會成為一個session cookie,即關閉瀏覽器的時候會被自動刪除

secure和httpOnly

標記為 Secure 的Cookie只應通過被HTTPS協議加密過的請求發送給服務端。但即便設置了 Secure 標記,敏感信息也不應該通過Cookie傳輸,因為Cookie有其固有的不安全性,Secure 標記也無法提供確實的安全保障。從 Chrome 52 和 Firefox 52 開始,不安全的站點(http:)無法使用Cookie的 Secure 標記

為避免跨域腳本 (XSS) 攻擊,通過JavaScript的 Document.cookie API無法訪問帶有 HttpOnly 標記的Cookie,它們只應該發送給服務端。如果包含服務端 Session 信息的 Cookie 不想被客戶端 JavaScript 腳本調用,那么就應該為其設置 HttpOnly 標記。

如何設置cookie

服務端

服務端set-cookie即可

如下圖是GitHub的設置cookie

1295247318-5b588331848a4_articlex.png

瀏覽器

直接在JavaScript里操作即可:

document.cookie="age=12; expires=Thu, 26 Feb 2116 11:50:25 GMT; domain=github.com; path=/";

如何修改cookie

修改一個cookie時,要保證name-domain-path一致,否則不會修改舊值,而是添加了一個新的 cookie。

如何刪除cookie

保證name-domain-path一致,并且把expires設置為一個過去的時間點

sessionStorage

使用

setItem(key, val);

getItem(key)

1837270637-5b58833157e10_articlex.png

3609607081-5b588331530cd_articlex.png


細節

  • 只有設置sessionStorage的當前域才能使用

  • 只有頁面刷新才不會清除掉sessionStorage。剩下的均會清理掉sessionStorage(比如打開新的tab、關掉當前tab再新開一個tab,更別提關閉瀏覽器了)

localStorage

使用

setItem(key, val);

getItem(key)

398150574-5b5883317bc39_articlex.png

2969608172-5b5883313927c_articlex.png

細節

  • 只有設置localStorage的當前域才能使用,但是新開的tab還可以使用且關閉瀏覽器重新打開還在

  • 用戶不主動刪除的話會一直存儲下去

  • 大小為4M

  • localStorage可以存儲k-v形式的數據。存儲的值需要是字符串類型,沒法直接存儲對象,但是可以將對象序列化為字符串再存入。如果強行存入object的話,就會被調用object.toString從而悲劇,正確的方法應該是JSON.stringify

websql

Web SQL 數據庫 API 并不是 HTML5 規范的一部分,但是它是一個獨立的規范,引入了一組使用 SQL 操作客戶端數據庫的 APIs。

使用

3個核心方法:

  • openDatabase:這個方法使用現有的數據庫或者新建的數據庫創建一個數據庫對象。

  • transaction:這個方法讓我們能夠控制一個事務,以及基于這種情況執行提交或者回滾。

  • executeSql:這個方法用于執行實際的 SQL 查詢。

相關推薦:

HTML中元信息meta標記屬性的分析(附代碼)

如何動態生成html元素以及為元素追加屬性的方法介紹(附代碼)

以上就是關于http前端存儲的總結的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




主站蜘蛛池模板: 欧美中文在线 | 色噜噜噜噜亚洲第一 | 天堂网在线看 | 欧美亚洲第一页 | 亚洲成人婷婷 | 欧美影院久久 | 中国女人一级做受免费视频 | 视频一区二区精品的福利 | 日本伦理中文字幕 | 日本爱爱视频 | 日韩国产欧美成人一区二区影院 | 天天综合色网 | 在线污污视污免费 | 色吊丝最新永久免费观看网站 | 日韩中文网 | 亚洲一区二区免费看 | 欧美性视频在线播放黑人 | 亚洲欧美天堂 | 在线免费视频a | 在线日韩视频 | 三级国产日产 | 亚洲欧美日韩在线不卡 | 色网站在线看 | 亚洲国产成人久久综合一 | 亚洲欧美手机在线观看 | 性视频久久 | 日本高清免费不卡在线 | 中文国产欧美在线观看 | 色综合伊人色综合网站中国 | 色男人综合 | 亚洲乱码在线 | 天天躁日日躁狠狠躁视频下载播二 | 欧美亚洲视频在线观看 | 亚洲福利一区二区精品秒拍 | 午夜视频在线观看网站 | 日韩免费在线视频观看 | 日本中文一二区有码在线观看 | 香蕉视频久久 | 日韩欧美一区二区在线观看 | 日韩免费a级在线观看 | 午夜欧美性欧美 |