Html 当发出相对请求时,主机标头取自何处?
根据报告: 最常见的请求URI形式是用于标识 源服务器或网关上的资源。在这种情况下,绝对 URI的路径必须作为 请求URI和URI(授权)的网络位置必须 将在主机头字段中传输。Html 当发出相对请求时,主机标头取自何处?,html,http,httprequest,fiddler,Html,Http,Httprequest,Fiddler,根据报告: 最常见的请求URI形式是用于标识 源服务器或网关上的资源。在这种情况下,绝对 URI的路径必须作为 请求URI和URI(授权)的网络位置必须 将在主机头字段中传输。 例如,客户希望 直接从源服务器检索上面的资源 创建到主机“www.w3.org”端口80的TCP连接并发送 台词: GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org 因此,当用户发出此请求时,它会得到响应 好了,现在这个循环结束了(!)-用户单击链
例如,客户希望 直接从源服务器检索上面的资源 创建到主机“www.w3.org”端口80的TCP连接并发送 台词:
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.org
因此,当用户发出此请求时,它会得到响应
好了,现在这个循环结束了(!)-用户单击
链接
- 请注意,地址是相对的
- 另外请注意,
没有(!)包含带有基本url(“www.w3.org/help”)的表单
操作
- 还要注意-没有表示基本url的
标记
host
值?抱歉,它不是从地址栏url来的
我知道document.location包含所有信息,但我认为这里不涉及JS
知道上一个周期(请求)已经结束(第一个请求)-主机
头值是从哪里获取的,而现在发出相对请求
如有规范参考,将不胜感激
编辑:
有点像小提琴手:
因此,对于此html:
<body>
<a href="/GetSomething"> Click me</a>
</body>
URL是完整的URL(显然):
这可能是一个非常简单的问题,但它从哪里获取基本url呢?(Javascript(document.location?)地址栏url?浏览器内部的一些内部存储?它取自表单所包含文档的基本URI (顺便说一句:您正在查看一个绝对规范;相关规范是RFC 7230)。 " 12.4.1解析相对URI 用户代理必须根据第3节计算用于解析相对URI的基本URI。下面描述如何专门应用于HTML 用户代理必须根据以下先决条件(从最高优先级到最低优先级)计算基本URI:
www.anotherebsite.com/action\u page.php
在中定义。这些数据可用于浏览器指纹识别,以通过服务器识别浏览器
正如网络模型所说,持久性(连接可能不是真正的持久性,因为页面已经加载,但是作为ip地址和上面提到的其他标识符,服务器知道它在同一会话期间是同一个浏览器/用户代理)连接通过会话层在客户端和服务器之间进行管理。服务器通过握手时获取的数据了解其客户端。之后,它可以知道为每个客户端实例化会话id,并且通过cookies客户端可以记住“AFAIK it not from the address bar url”-您假设这是真的,因为…啊,因为在这种情况下,浏览器url不是带有链接的页面的url,由于iFrame的原因,浏览器只需跟踪哪个文件是从哪个URL下载的——就这么简单。@Eric我不这么认为。看这张SO的表格。没有目标url。你指的是地址栏url吗?地址栏是一个用户界面元素,所以它是不相关的。所以我想我不明白你的答案。单击相对链接时,主机地址在何处?不要忘记,文档不必具有表单,用户代理知道它从何处加载文档,通常这就是基本URI。关于这一点的血淋淋的细节应该在HTML5规范中。但我不明白:当我请求A.com
,然后得到响应时,这个重新响应的周期就结束了!以前任何请求的内存都不会保留在任何位置。那么现在如果我点击一个
,那么基本URI是从哪里获取的呢?(我提醒您,前面的请求已经完成。我很乐意提供参考。您向我解释和http是如何工作和发送的(我已经知道)。我只问了一个问题:“在相对请求中,它从哪里获取主机头?”。OSI模型与此无关。@RoyiNamir在删除的模型图像上添加了一个段落。想了解更多信息,请在此提供帮助:)不清楚您在这里谈论的是哪台服务器。(“服务器总是将链接作为本地if协议进行尝试”)。当我单击
-在该阶段,还没有涉及任何服务器。但它仍然知道在相对URL中的位置。所以这个答案仍然没有回答这个问题。另外-我正在寻找规范证明。@RoyiNamir添加了对多达的引用。:)哦。这就是你想知道的,所以我正在移除所有其他部分。:)
GET http://null.jsbin.com/GetSomething HTTP/1.1
Host: null.jsbin.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
DNT: 1
Referer: http://null.jsbin.com/runner
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,he;q=0.6
Cookie: _ga=GA1.2.474312101.1437654587; _gat=1; jsbin=s%3A...
http://null.jsbin.com/GetSomething
GET http://null.jsbin.com/GetSomething HTTP/1.1
Host: null.jsbin.com