zoukankan      html  css  js  c++  java
  • 修改或添加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为不发送。

  • 相关阅读:
    条件注释,判断浏览器版本
    IE 兼容模式下不支持DIV CSS样式display:inline-block,解决
    Hibernate配置问题
    初学Hibernate
    Ognl基本使用
    初学Struts2-自定义拦截器及其配置
    初学structs2,表单验证简单补充
    初学structs2,表单验证
    structs2标签简单实用,及自定义转换器示例代码
    一些专业术语的总结
  • 原文地址:https://www.cnblogs.com/Yethon/p/10424816.html
Copyright © 2011-2022 走看看