修改或添加HTTP請求頭


1.Cookie的修改

 

(一)cookie長什么樣

cookie是一個個鍵值對(“鍵=值”的形式)加上分號空格隔開組合而成, 形如: "name1=value1; name2=value2; name3=value3"

注: Cookie(儲存在用戶本地終端上的數據),有時也用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行 session 跟蹤而儲存在用戶本地終端上的數據(通常經過加密

 

(二)cookie設置語法:

 

document.cookie = "cookieName=mader; expires=Fri, 31 Dec 2017 15:59:59 GMT; path=/mydir; domain=cnblogs.com; max-age=3600; secure=true";

  •  cookieName=mader :name=value,cookie的名稱和值
  •  expires=Fri, 31 Dec 2017 15:59:59 GMT: expires,cookie過期的日期,如果沒有定義,cookie會在對話結束時過期。日期格式為 new Date().toUTCString()
  •  path=/mydir: path=path (例如 '/', '/mydir') 如果沒有定義,默認為當前文檔位置的路徑。
  •  domain=cnblogs.com: 指定域(例如 'example.com', '.example.com' (包括所有子域名), 'subdomain.example.com') 如果沒有定義,默認為當前文檔位置的路徑的域名部分。
  •  max-age=3600: 文檔被查看后cookie過期時間,單位為秒
  •  secure=true: cookie只會被https傳輸 ,即加密的https鏈接傳輸

 

(三)cookie的主要作用:

Cookie主要用在以下三個方面:

  • 會話狀態管理(如用戶登錄狀態、購物車、游戲分數和其它需要記錄的信息)
  • 個性化設置(如用戶自定義設置、主題等)
  • 瀏覽器行為跟蹤(如跟蹤分析用戶行為)

 

(四)相關操作:

獲取cookie:
復制代碼
 1 /**
 2      * 獲取對應名稱的cookie
 3      * @param name cookie的名稱
 4      * @returns {null} 不存在時,返回null
 5      */
 6     var getCookie = function (name) {
 7       var arr;
 8       var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
 9       if (arr = document.cookie.match(reg))
10         return unescape(arr[2]);
11       else
12         return null;
13     };
復制代碼
cookie獲取正則解析:
"(^| )" + name + "=([^;]*)(;|$)"  (^| )匹配cookie開頭或空格(cookie鍵值對之間用分號空格隔開),也就是cookie鍵值對的開始。接着是cookie的名稱name,([^;]*)匹配除分號以外的任意字符,也就是cookie鍵值對的值。最后(;|$)匹配分號或整個cookie的結尾,也就是cooke鍵值對的結尾。

更多正則的語法詳解請參考:

   正則表達式的用法和常用實例【1】




刪除cookie:

 

復制代碼
1 /**
2      * 刪除cookie
3      * @param name cookie的名稱
4      */
5     var delCookie = function (name) {
6       setCookie(name, ' ', -1);
7     };
復制代碼

設置要刪除的cookie的expires為過去的時間即可

 

修改cookie:

使用上面設置cookie的方法,重新給要修改的cookie賦值就行,這樣舊的就會被覆蓋掉

 

參考連接:https://www.cnblogs.com/maderlzp/p/7843365.html

 

2.Accept-Language:語言

 

Content-Language 是一個 entity header (實體消息首部),用來說明訪問者希望采用的語言或語言組合,這樣的話用戶就可以根據自己偏好的語言來定制不同的內容。

舉個例子,假如設置了這樣一條消息首部( "Content-Language: de-DE" ),那么說明這份文件是為說德語的人提供的(當然這並不意味着文件本身就是用德語寫的。比如,它可能是為說德語的人開設的英語教程的一部分,也就是用英語寫的)。

如果沒有指明  Content-Language,那么默認地,文件內容是提供給所有語言的訪問者使用的。多個語言標簽也是合法的,同樣的,這個首部還可以用來描述不同媒體類型的文件,而不單單局限於文本型文檔。

Accept-Language: zh-cn,zh;q=0.5

  意思:瀏覽器支持的語言分別是簡體中文和中文,優先支持簡體中文。

  詳解:

  Accept-Language表示瀏覽器所支持的語言類型;

  zh-cn表示簡體中文;zh 表示中文;

    q是權重系數,范圍 0 =< q <= 1,q 值越大,請求越傾向於獲得其“;”之前的類型表示的內容,若沒有指定 q 值,則默認為1,若被賦值為0,則用於提醒服務器哪些是瀏覽器不接受的內容類型。 

語法

Accept-Language: <language>
Accept-Language: <locale>
Accept-Language: *

// Multiple types, weighted with the quality value syntax:
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5

指令

<language>

用含有兩到三個字符的字符串表示的語言碼。

<locale>

完整的語言標簽。除了語言本身之外,還會包含其他方面的信息,顯示在中划線("-")后面。最常見的額外信息是國家或地區變種(如"en-US")或者表示所用的字母系統(如"sr-Lat")。其他變種諸如拼字法("de-DE-1996")等通常不被應用在這種場合。

*

任意語言;"*"表示通配符。

;q= (q-factor weighting)緊跟在所標識語言的后面

值代表優先順序,用相對質量價值 表示,又稱為權重。q是權重系數,范圍 0 =< q <= 1,q 值越大,請求越傾向於獲得其“;”之前的類型表示的內容,若沒有指定 q 值,則默認為1,若被賦值為0,則用於提醒服務器哪些是瀏覽器不接受的內容類型。

多個參數項用逗號隔開。
------------------------------------------------------------------------------------------------------------------
作者:white_HATmagic
來源:CSDN
原文:https://blog.csdn.net/qq_40491569/article/details/83472556

 

3.Referer來源偽造

 

X-Forwarded-For:ip偽造

User-Agent:用戶代理(就是用什么瀏覽器什么的)

Firefox中關於Referer的設置都在里,有兩個鍵值:network.http.sendRefererHeader (default=2) 設置Referer的發送方式,0為完全不發送,1為只在點擊鏈接時發送,在訪問頁面中的圖像什么的時候不發送,2為始終發送。參見Privacy Tip #3: Block Referer Headers in Firefoxnetwork.http.sendSecureXSiteReferrer (default=true) 設置從一個加密頁訪問到另外一個加密頁的時候是否發送Referer,true為發送,false為不發送。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM