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

資訊專欄INFORMATION COLUMN

cookie

EsgynChina / 2288人閱讀

摘要:可以通過來維護狀態(tài)信息。就表示當前僅能在目錄下使用。常用的操作及其函數實現方法可根據世界時把對象轉換為字符串,并返回結果。瀏覽器支持會話恢復,保留。和標志只能通過傳輸,可以防止攻擊。表示無法通過調用,防止中間人劫持。

0. 從http協議的無狀態(tài)性說起

http 是無狀態(tài)的協議

無連接:處理完一個請求就斷開鏈接(http1.1以后可以實現長連接)

無狀態(tài):上一次會話與下一次會話沒有聯系。

可以通過 cookie 來維護狀態(tài)信息。

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

客戶端:

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

服務端:

使用 setCookie 來設置,在設置多個 cookie的時候,得多寫幾個 setCookie。

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

常用的cookie操作及其函數實現:

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() 方法可根據世界時 (UTC) 把 Date 對象轉換為字符串,并返回結果。

getCookie(name):

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

cookie的可選項:

expires/max-age: 設置過期時間。

expires是絕對時間,max-age是相對時間。

如果沒有設置過期時間,則表示是一個會話期cookie,在關閉瀏覽器后,會被移除。

瀏覽器支持會話恢復,保留cookie。

正數,表示 多少秒后失效

負數,該 cookie 是臨時 cookie,關閉瀏覽器就失效,瀏覽器頁不會以任何形式保存該 cookie

為 0,表示刪除 cookie

domain和path:

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

path 的設置,必須以 ‘/’結尾

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

domain標識指定了哪些主機可以接受cookie。如果沒有設置,則是當前主機(不包含子域名),否則為設置的域名(包含子域名)。

secure和httponly:

secure標志cookie只能通過https傳輸,可以防止xss攻擊。

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

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

問題:
- 問題:“www.qq.com” 與 “sports.qq.com” 公用一個關聯的域名”qq.com”,我們如果想讓”sports.qq.com” 下的cookie被 “www.qq.com” 訪問:
- 解答:我們就需要用到cookie 的domain屬性,并且需要把path屬性設置為 “/“。例:document.cookie = “username=Darren;path=/;domain=qq.com“
- 問題:同域名的資源請求時,會默認帶上本地的cookie,如何優(yōu)化?
- 解答:將靜態(tài)資源分組,分別放在不同的子域下(子域名請求時,是不會帶上父級域名的cookie的)
cookie 的跨域問題

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

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

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/106259.html

相關文章

  • Servlet第五篇【介紹會話技術、Cookie的API、詳解、應用】

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

    binaryTree 評論0 收藏0
  • Cookic

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

    phoenixsky 評論0 收藏0
  • 客戶端數據存儲----Cookie From 《高程3》

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

    馬忠志 評論0 收藏0
  • 客戶端數據存儲----Cookie From 《高程3》

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

    since1986 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<