http请求头origin、referer和host区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http请求头origin、referer和host区别相关的知识,希望对你有一定的参考价值。
参考技术A 描述请求将被发送的目的地,包括且仅仅包括域名和端口号。 HTTP/1.1 的所有请求报文中必须包含一个Host头字段,且只能设置一个。请求头origin表明了请求来自于哪个站点。包括且仅仅包括协议、域名和端口,并不包含任何路径信息。经常用于CORS请求或者POST请求,可以看到response有对应的header:Access-Control-Allow-Origin。
@CrossOrigin(origins="http://wx.xxxx.com:80")
@RequestMapping(value = "list", method = RequestMethod.POST)
public String list(HttpServletRequest request, HttpServletResponse response)
告知服务器请求的原始资源的URI,其用于所有类型的请求,并且包括协议、域名、路径和查询参数。
在以下几种情况Referer不会被发送:
1)来源页面采用的协议为表示本地文件的 "file" 或者 "data" URI;
2)当前请求页面采用的是非安全协议,而来源页面采用的是安全协议(HTTPS);
3)直接输入网址或通过浏览器书签访问;
4)使用 javascript 的 Location.href 或者是 Location.replace();
5)使用html5中noreferrer;
6)使用iframe的hack写法去除referer。
请求头中referer与origin功能相似,但有如下几点不同:
1、只有跨域请求,或者同域时发送post请求,才会携带origin请求头,而referer不论何种情况下,只要浏览器能获取到请求源都会携带,除了上面提到的几种情况。
2、如果浏览器不能获取请求源,那么origin满足上面情况也会携带,不过其值为null。referer则不同,浏览器如果不能获取请求源,那么请求头中不会携带referer。
3、origin的值只包括协议、域名和端口,而erferer不但包括协议、域名、端口,还包括路径和参数。
以上是关于http请求头origin、referer和host区别的主要内容,如果未能解决你的问题,请参考以下文章