http(網(wǎng)絡(luò)傳輸協(xié)議)https(安全)
特點(diǎn):
無狀態(tài) (不知道訪問者是誰)
無連接 (連接完成后會斷開)
長連接/短連接 (key-alive屬性來指定的)
既然我們的http協(xié)議是無狀態(tài)的 那么我們怎么區(qū)分對應(yīng)的訪問者(孕育而出了一個(gè)sessionID 來做區(qū)
分)
他訪問了我 我給你一個(gè)對應(yīng)的sessionID 他訪問了我我同樣給他一個(gè)sessionID (這個(gè)時(shí)候我們就可以
通過這個(gè)sessionID來做區(qū)分)
這個(gè)sessionID是怎么給到你的呢?
他是通過在訪問的時(shí)候 給你分發(fā)一個(gè)sessionID 保存到你的機(jī)器上 (存在于你的瀏覽器上 cookie)
sessionID是依賴于cookie進(jìn)行存儲的
cookie會隨請求一起過去
這個(gè)時(shí)候我們的http的無狀態(tài)就解決了
cookie
剛才在上面我們已經(jīng)知道了對應(yīng)的cookie是存儲對應(yīng)的sessionID 那么是不是就證明了我們的cookie是
一個(gè)容器的(這個(gè)容器的大小只有4k) 是一個(gè)容器我們就有對應(yīng)的增刪改查的方法
cookie里面是什么樣
對應(yīng)的屬性有
鍵=值 (名字=值)
expires 過期時(shí)間(關(guān)閉瀏覽器失效)*
path 訪問路徑(指定對應(yīng)的路徑攜帶cookie)
domain 跨域 (可以跨域的域名)
secure 安全
URI編碼和解碼
encodeURIComponent 編碼
decodeURIComponent 解碼
增刪改查
添加 直接賦值
//name是對應(yīng)的cookie的名字 key=value expires 過期日期 path 訪問路徑(才攜帶cookie)
domain 跨域操作 secure 安全獲取 采用讀取字符串的形式
刪除 設(shè)置過期時(shí)間
修改 重新設(shè)置就是修改
cookie的特性
1.為了解決http無狀態(tài)的問題
2.存儲只有4k左右
3.他是存儲在瀏覽器上
4.他會隨請求攜帶
5.他可以被偽造和修改(不安全)
cookie和localStorage的區(qū)別
localStorage容量大于cookie
localStorage存儲的位置和cookie不是一個(gè)地方
localStorage對應(yīng)的不會隨請求攜帶(本地緩存)
cookie 在后續(xù)的框架中也會使用 但是他使用的是對應(yīng)的庫(cookie.js)
https://www.mianshigee.com/project/cookie-js/
localStorage的方法
getItem(key) 獲取元素
setItem(key,value) 設(shè)置元素
removeItem(key) 移除元素
JSON
JSON是一種數(shù)據(jù)格式(json字符串) 他通用我們對應(yīng)的網(wǎng)絡(luò)傳輸(xml)他是一種數(shù)據(jù)格式 而在對應(yīng)
的JavaScript他是一種數(shù)據(jù)類型
json倆種顯示方式
對象 {} .key
數(shù)組 [] 使用下標(biāo)
document.cookie = "key=value;"
console.log(document.cookie.split(";")[0].split("=")[1]) //拿到value值
document.cookie = "key=value;expires="+new Date()
document.cookie = "key=hello;"反序列化操作 (將字符串變成對象)
JSON.parse() *
eval()
序列化操作 (將對象變成json格式的字符串)
JSON.stringify() *
localstorage和cookie存儲的格式(字符串)以后再存儲數(shù)據(jù)的時(shí)候直接存儲json格式字符串 取出的
時(shí)候利用反序列化轉(zhuǎn)為對象