首页 > 编程知识 正文

local-aaa-user password policy,php是什么

时间:2023-05-06 01:21:36 阅读:105889 作者:1353

referer的写法是错误的。 正确的说法是referrer。 恐怕是早期http规范的拼写错误,为了保持向后兼容性而错了。

一、九种波利斯

enum ReferrerPolicy {

“”,

' no-referrer ',

' no-referrer-when-downgrade ',

“same-origin”,

" origin ",

" strict-origin ",

' origin-when-cross-origin ',

' strict-origin-when-cross-origin ',

' unsafe-url '

(;

1否referrer

指示http请求的请求标头中没有referer字段

2无参照降级(默认) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。

如果未指定其他policy,则这是浏览器的默认值。 也就是说,当前referer是当前页面的地址。 不包括锚点#。

如果降级,则不发送referer。 这意味着请求标头中没有referer字段,就像在https-http中一样。

3 same-origin

如果请求相同,即不是域之间,则发送referer字段。

如果请求具有跨域,则不发送referer字段。

4原始

无论是跨域还是降级,都会发送referer字段,但不包含路径等信息,只有域名和端口。

例如,如果页面地址是3http://localhost :3000/referer.html,则referer是3358localhost:3000/

5直排

在policy=origin的请求中,对于降级(https-http ),添加了不发送referer的情况。

6 origin-when-cross-origin

对于相同的请求,将发送所有referer字段,并且referer的值是当前页面的地址(http://localhost 33603000/referer.html )。

对于跨域请求,还会发送referer,但referer的值与域名端口(http://localhost:3000/)或origin相同。

7 strict-origin-when-cross-origin

在policy=origin-when-cross-origin请求中,对于降级(https-http ),添加了不发送referer的内容。

8 unsafe-url

无论是同源还是跨域,referer都将被发送。

9空字符串

如果referer为空字符串,则根据设置的算法回滚到默认值,即无referrer-when-downgrade

二、referer什么时候不发送

如果直接在浏览器地址栏中键入或单击选项卡,则不会发送referer。 其他方式都发送。

例如,加载页面的其他资源(如js、css和img等资源)、加载表单或单击标签。

可以在js中获取referer的值: document.referrer。

但是,尝试在js中更改http请求标头的referer是不行的。 您可以更改document.referrer的值,但不会更改请求标头中的referer字段。

delete window.document.referrer;

window.document._ _ define getter _ _ (' referrer ',function

return 'http://referer.com ';

);

console.log (window.document.referrer )// http://referer.com

//需要注意:此时http请求标头的referer未更改

三.哪些html标签可以设置referer policy

1元

可以在meta上设定上述9种policy

例如:

2 a

可以通过ref属性进行设定。

例如xxx

3 img

可以使用以下referrerPolicy属性进行设置:

4 iframe

可以使用以下referrerPolicy属性进行设置:

在上面的一些方式中,元是站点级别,相当于父级。 一旦设置,html页面下的a和img等将继承referer策略。

但是,可以通过单独设置a和img等来实现不同的referer策略。

在网上,似乎也可以在form表单上设置referer,但从w3c文档来看,似乎没有。

而link标签的referrerpolicy属性则属于实验阶段的API。referer的写法是错的,正确的是referrer。大概是早期http规范的拼写错误,然后为了保持向下兼容,就将错就错了。

一、九种policyenum ReferrerPolicy {

"",

"no-referrer",

"no-referrer-when-downgrade",

"same-origin",

"origin",

"strict-origin",

"origin-when-cross-origin",

"strict-origin-when-cross-origin",

"unsafe-url"

};

1 no-referrer

表示http请求的请求头没有referer字段

2 no-referrer-when-downgrade(默认值)

如果没指定其他policy,则这个就是浏览器的默认值。即当前的referer就是当前页面的地址(不包括锚点#)。

如果存在降级的情况,则referer不会被发送,也就是请求头没有referer字段,比如https->http的情况。

3 same-origin

如果请求是同源,即没有跨域,则referer字段会被发送。

如果请求存在跨域,则referer字段不会被发送。

4 origin

不管是否存在跨域或者降级的情况,referer字段都会被发送,但不会带上路径等信息,只有域名和端口。

比如页面地址是http://localhost:3000/referer.html,则referer则是http://localhost:3000/

5 strict-origin

在policy=origin的要求内,增加了在降级(https->http)的情况下,referer不会被发送。

6 origin-when-cross-origin

如果是同源的请求,则referer字段都会被发送,且referer的值是当前页面的地址(http://localhost:3000/referer.html)。

如果是跨域的请求,referer也会被发送,但此时referer的值只有域名+端口(http://localhost:3000/),也就是跟origin一样。

7 strict-origin-when-cross-origin

在policy=origin-when-cross-origin的要求内,增加了在降级(https->http)的情况下,referer不会被发送。

8 unsafe-url

不管是否同源或跨域,referer都会被发送。

9 空字符串

如果referer是空字符串,则会根据设定的算法回退到默认值,即no-referrer-when-downgrade

二、referer什么时候不发送

在浏览器地址栏,直接输入或者点击标签的时候,referer就不会被发送。其他方式都会发送。

比如加载页面其他资源,如js,css和img等资源,又或者form表单,或者点击标签。

可通过js来获取referer的值:document.referrer。

但想通过js来改变http请求头的referer是不行的,虽然能改变document.referrer的值,但请求头的referer字段依然不会被改变。delete window.document.referrer;

window.document.__defineGetter__('referrer', function () {

return "http://referer.com";

});

console.log(window.document.referrer) // http://referer.com

// 需要注意:此时http请求头的referer是没有被改变的

三、哪些html标签可设置referer的policy

1 meta

可通过meta来设置上面提到的九种policy

如:

2 a

可通过ref属性来设置。

如:xxx

3 img

可通过referrerPolicy属性来设置,如:

4 iframe

可通过referrerPolicy属性来设置,如:

上面几种方式,meta是网站级别的,相当于父级,一旦设置,html页面下的a和img等都会继承referer策略。

但可通过单独设置a和img等来实现不同的referer策略。网上说貌似form表单也可以设置referer,但看了下w3c文档,貌似没有。

而link标签的referrerpolicy属性则属于实验阶段的API。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。