国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

cookie

EsgynChina / 2277人閱讀

摘要:可以通過(guò)來(lái)維護(hù)狀態(tài)信息。就表示當(dāng)前僅能在目錄下使用。常用的操作及其函數(shù)實(shí)現(xiàn)方法可根據(jù)世界時(shí)把對(duì)象轉(zhuǎn)換為字符串,并返回結(jié)果。瀏覽器支持會(huì)話恢復(fù),保留。和標(biāo)志只能通過(guò)傳輸,可以防止攻擊。表示無(wú)法通過(guò)調(diào)用,防止中間人劫持。

0. 從http協(xié)議的無(wú)狀態(tài)性說(shuō)起

http 是無(wú)狀態(tài)的協(xié)議

無(wú)連接:處理完一個(gè)請(qǐng)求就斷開鏈接(http1.1以后可以實(shí)現(xiàn)長(zhǎng)連接)

無(wú)狀態(tài):上一次會(huì)話與下一次會(huì)話沒(méi)有聯(lián)系。

可以通過(guò) cookie 來(lái)維護(hù)狀態(tài)信息。

1. cookie 存儲(chǔ)大小:每條的存儲(chǔ)空間為4k; 特點(diǎn):
- cookie沒(méi)有顯示的刪除函數(shù),可以設(shè)置 expire/max-age 過(guò)期時(shí)間,自動(dòng)觸發(fā)瀏覽器的刪除機(jī)制。
- 服務(wù)器通過(guò)設(shè)置響應(yīng)頭來(lái)設(shè)置客戶端的cookie,Set-Cookie: cookie-名=cookie值。可以同時(shí)添加多個(gè)Set-Cookie,從而設(shè)置多個(gè)cookie的值。
- 不允許存儲(chǔ)敏感信息(用戶名,密碼等),一定要存儲(chǔ),要設(shè)置 cookie為 httponly, 另外考慮使用 非對(duì)稱加密
- 瀏覽器 中的cookie 數(shù)量達(dá)到上限后,會(huì)刪除舊的創(chuàng)建新的,刪哪個(gè)由瀏覽器的策略決定
- cookie 通常與 session 一起使用。
    - 登錄時(shí),server 端存儲(chǔ) 用戶信息相關(guān)的 session。
    - server 端,生成的 sessionid 會(huì)放在cookie中,對(duì)應(yīng)域名下就有了這個(gè)cookie。
    - 以后會(huì)自動(dòng)帶這個(gè) cookie,server 根據(jù)id 找到 session,獲取用戶信息。
基本操作

客戶端:

// 讀取:
document.cookie
// 設(shè)置:
document.cookie = "myNmae=liulanqi;path=/;domain=.baidu.com";

服務(wù)端:

使用 setCookie 來(lái)設(shè)置,在設(shè)置多個(gè) cookie的時(shí)候,得多寫幾個(gè) setCookie。

設(shè)置cookie:
    document.cookie="userId=828";
    document.cookie="userName=hulk"; 
    此時(shí)瀏覽器將會(huì)維護(hù)兩個(gè)cookie,分別為userId和userName;相當(dāng)于:
    document.addCookie("userId=828");
    document.addCookie("userName=hulk");
    如果要改變一個(gè)cookie的值,只需重新賦值,例如:
    document.cookie="userId=929";
獲取cookie:
var strCookie=document.cookie;
console.log(strCookie); //userId=828; userName=hulk
- 只能一次獲取所有的cookie的值,而不能指定cookie名稱來(lái)獲得指定的值。
- 如果在某個(gè)頁(yè)面創(chuàng)建了一個(gè)cookie,那么該頁(yè)面所在目錄中的其他頁(yè)面也可以訪問(wèn)該cookie。
- 為了控制cookie可以訪問(wèn)的目錄,需要使用path參數(shù)設(shè)置cookie。document.cookie="userId=320; path=/shop";就表示當(dāng)前cookie僅能在shop目錄下使用。

常用的cookie操作及其函數(shù)實(shí)現(xiàn):

addCookie(name, value, expireHours):

    function addCookie(name,value,expireHours){
         var exdate = new Date();    
        exdate.setTime(exdate.getTime() + expireHours * 60 * 60 * 1000);    
          document.cookie = name + "=" + escape(value) + ((expireHours == null) ? "" : ";expires=" + exdate.toUTCString());
    }
    toUTCString() 方法可根據(jù)世界時(shí) (UTC) 把 Date 對(duì)象轉(zhuǎn)換為字符串,并返回結(jié)果。

getCookie(name):

    function getCookie(name){
        let arr, reg = new RegExp(`^| ${name} = [^;]*;|$`);
        if (arr = document.cookie.match(reg)) return arr[2];
        else return null;
    }

cookie的可選項(xiàng):

expires/max-age: 設(shè)置過(guò)期時(shí)間。

expires是絕對(duì)時(shí)間,max-age是相對(duì)時(shí)間。

如果沒(méi)有設(shè)置過(guò)期時(shí)間,則表示是一個(gè)會(huì)話期cookie,在關(guān)閉瀏覽器后,會(huì)被移除。

瀏覽器支持會(huì)話恢復(fù),保留cookie。

正數(shù),表示 多少秒后失效

負(fù)數(shù),該 cookie 是臨時(shí) cookie,關(guān)閉瀏覽器就失效,瀏覽器頁(yè)不會(huì)以任何形式保存該 cookie

為 0,表示刪除 cookie

domain和path:

path,設(shè)置必須匹配的路徑或者子路由才會(huì)發(fā)送cookie。如果路徑設(shè)為/forums/,那么這個(gè) Cookie 只有在訪問(wèn)www.example.com/forums及其子路徑時(shí)才有效。

path 的設(shè)置,必須以 ‘/’結(jié)尾

domain 的設(shè)置,第一個(gè)字符必須是 ‘.’, 比如“.baidu.com”

domain標(biāo)識(shí)指定了哪些主機(jī)可以接受cookie。如果沒(méi)有設(shè)置,則是當(dāng)前主機(jī)(不包含子域名),否則為設(shè)置的域名(包含子域名)。

secure和httponly:

secure標(biāo)志cookie只能通過(guò)https傳輸,可以防止xss攻擊。

httponly表示cookie無(wú)法通過(guò)javascript調(diào)用,防止中間人劫持。把cookie設(shè)置為secure,只保證 cookie 與服務(wù)器之間的數(shù)據(jù)傳輸過(guò)程加密,而保存在本地的 cookie文件并不加密。如果想讓本地cookie也加密,得自己加密數(shù)據(jù)。

samesite:可以設(shè)置 SameSite:SameSite=Strict SameSite=Lax。則 cookie 不跨域發(fā)送。ajax中設(shè)置xhr.withCredentials = true;

問(wèn)題:
- 問(wèn)題:“www.qq.com” 與 “sports.qq.com” 公用一個(gè)關(guān)聯(lián)的域名”qq.com”,我們?nèi)绻胱尅眘ports.qq.com” 下的cookie被 “www.qq.com” 訪問(wèn):
- 解答:我們就需要用到cookie 的domain屬性,并且需要把path屬性設(shè)置為 “/“。例:document.cookie = “username=Darren;path=/;domain=qq.com“
- 問(wèn)題:同域名的資源請(qǐng)求時(shí),會(huì)默認(rèn)帶上本地的cookie,如何優(yōu)化?
- 解答:將靜態(tài)資源分組,分別放在不同的子域下(子域名請(qǐng)求時(shí),是不會(huì)帶上父級(jí)域名的cookie的)
cookie 的跨域問(wèn)題

域名、端口相同就不算跨域,協(xié)議可以不同。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/106259.html

相關(guān)文章

  • Servlet第五篇【介紹會(huì)話技術(shù)、Cookie的API、詳解、應(yīng)用】

    摘要:保存中文上面我們的例子保存的是英文字符,下面我們來(lái)看下保存中文字符會(huì)怎么樣。出異常了中文屬于字符,英文數(shù)據(jù)字符,中文占個(gè)字符或者個(gè)字符,英文占個(gè)字符。如果為,則表示刪除該。的值規(guī)定為域名的隱私安全機(jī)制決定是不可跨域名的。 什么是會(huì)話技術(shù) 基本概念: 指用戶開一個(gè)瀏覽器,訪問(wèn)一個(gè)網(wǎng)站,只要不關(guān)閉該瀏覽器,不管該用戶點(diǎn)擊多少個(gè)超鏈接,訪問(wèn)多少資源,直到用戶關(guān)閉瀏覽器,整個(gè)這個(gè)過(guò)程我們稱為一...

    binaryTree 評(píng)論0 收藏0
  • Cookic

    摘要:追蹤記錄和分析用戶行為。屬性返回一個(gè)布爾值,表示瀏覽器是否打開功能不同瀏覽器對(duì)數(shù)量和大小的限制,是不一樣的。請(qǐng)求的發(fā)送瀏覽器向服務(wù)器發(fā)送請(qǐng)求時(shí),每個(gè)請(qǐng)求都會(huì)帶上相應(yīng)的。屬性必須為絕對(duì)路徑,默認(rèn)為當(dāng)前路徑。屬性值必須是當(dāng)前發(fā)送的域名的一部分。 概述Cookie 與 HTTP 協(xié)議HTTP 回應(yīng):Cookie 的生成HTTP 請(qǐng)求:Cookie 的發(fā)送Cookie 的屬性Expires,M...

    phoenixsky 評(píng)論0 收藏0
  • 客戶端數(shù)據(jù)存儲(chǔ)----Cookie From 《高程3》

    摘要:首先先來(lái)一段總結(jié)用于本地?cái)?shù)據(jù)存儲(chǔ),出現(xiàn)在服務(wù)器和瀏覽器交互的響應(yīng)頭部和請(qǐng)求頭部中,受到單域名下的數(shù)量單個(gè)大小性能安全限制。子技術(shù)的出現(xiàn)緩解了單域名下的數(shù)量限制,關(guān)于子有一整套工具函數(shù)可以使用。 前言 本篇主要介紹Cookie技術(shù)的讀書總結(jié),但是我認(rèn)為邏輯上最好會(huì)和Web Storage技術(shù)放在一起進(jìn)行對(duì)比,因此后續(xù)會(huì)再總結(jié)一篇關(guān)于WEB存儲(chǔ)的姊妹總結(jié),敬請(qǐng)期待。 首先先來(lái)一段總結(jié):Co...

    馬忠志 評(píng)論0 收藏0
  • 客戶端數(shù)據(jù)存儲(chǔ)----Cookie From 《高程3》

    摘要:首先先來(lái)一段總結(jié)用于本地?cái)?shù)據(jù)存儲(chǔ),出現(xiàn)在服務(wù)器和瀏覽器交互的響應(yīng)頭部和請(qǐng)求頭部中,受到單域名下的數(shù)量單個(gè)大小性能安全限制。子技術(shù)的出現(xiàn)緩解了單域名下的數(shù)量限制,關(guān)于子有一整套工具函數(shù)可以使用。 前言 本篇主要介紹Cookie技術(shù)的讀書總結(jié),但是我認(rèn)為邏輯上最好會(huì)和Web Storage技術(shù)放在一起進(jìn)行對(duì)比,因此后續(xù)會(huì)再總結(jié)一篇關(guān)于WEB存儲(chǔ)的姊妹總結(jié),敬請(qǐng)期待。 首先先來(lái)一段總結(jié):Co...

    since1986 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<