Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果IP没有在HTTP上侦听(不是服务器)或处于脱机状态,GET请求参数是否仍然通过线路发送给它们?_Http - Fatal编程技术网

如果IP没有在HTTP上侦听(不是服务器)或处于脱机状态,GET请求参数是否仍然通过线路发送给它们?

如果IP没有在HTTP上侦听(不是服务器)或处于脱机状态,GET请求参数是否仍然通过线路发送给它们?,http,Http,假设我知道一个IP,例如1.2.3.4 并且1.2.3.4不是Web服务器(因此不侦听http请求),或者1.2.3.4可能处于脱机状态(powerouttage) 如果在我的浏览器中,我键入: 然后我按回车键 该示例消息和主题中的参数是否仍然通过线路发送并尝试到达IP 1.2.3.4? 当然我不会得到回复,但我只想知道它是否仍然通过电线发送 我试着在chrome上使用一些数据包查看器,它显示了带有参数的GET请求。但我想知道带有参数的请求是否真的能够通过网络传输,并进行通常的跳跃以到达IP(即

假设我知道一个IP,例如1.2.3.4

并且1.2.3.4不是Web服务器(因此不侦听http请求),或者1.2.3.4可能处于脱机状态(powerouttage)

如果在我的浏览器中,我键入: 然后我按回车键

该示例消息和主题中的参数是否仍然通过线路发送并尝试到达IP 1.2.3.4? 当然我不会得到回复,但我只想知道它是否仍然通过电线发送


我试着在chrome上使用一些数据包查看器,它显示了带有参数的GET请求。但我想知道带有参数的请求是否真的能够通过网络传输,并进行通常的跳跃以到达IP(即使它在到达IP后被丢弃,因为IP没有监听).

一个典型的浏览器会通过网络发送整个URI,这就是HTTP的工作原理。不管目的地是否是Web服务器(无论如何都无法事先知道)。但是,服务器应至少接受TCP连接,以便进行连续写入。这意味着,如果服务器处于脱机状态,则不会建立连接,因此不会发生进一步的网络活动

请注意,这里的“服务器”并不是指代理链中的最终服务器,而是离您最近的服务器,即客户机。因此,在以下链中:浏览器->代理服务器->Web服务器,只要代理服务器处于运行状态,数据就会通过网络传输,而不管Web服务器的状态如何

整个请求是否通过每个潜在的中间机器并处于未修改状态完全取决于这些机器,这是不可能知道的。但是一个典型的代理会尝试不加更改或稍微修改地传递请求(它可能会添加一些头,但URI通常保持原样)


这就是为什么回应如此重要。唯一可以确保您的请求到达目的地的情况是,目的地发回了到达您的响应。它类似于传统的邮寄方式。你写一封信并把它交给邮局。你无法知道这封信是否到达目的地。实际上,在给定的时刻,没有办法知道它在哪里。除非您的收件人向您发回响应。

请求将通过TCP连接,该连接必须首先通过三方握手建立。如果远程服务器处于脱机状态,并且没有响应第一个
SYN
TCP握手请求,则应该是这样,不应发送任何其他内容

当然,如果您仍然有一个从先前请求到服务器的活动TCP连接,那么不需要重复握手,您的计算机将假定先前协商的连接仍然良好,并通过有线直接发送HTTP请求。它只会在一段时间后没有收到对该请求的回复时才注意到连接已断开


当然,如果涉及任何代理或网关,而这些代理或网关可能试图作为中间人处理请求,那么您可以进入更复杂的领域,在这种情况下,请求可能会转到其中一个,但不会到达最终目的地。

什么是“Chrome上的数据包查看器”?我安装了捕获所有发送或接收的内容的东西…不确定它叫什么让我检查一下我忘记了它现在叫什么,但它显示了GET请求,但后来我删除了该扩展,但后来我安装了Fiddler(无处不在)它还捕获了显示参数的GET请求。捕获这些数据包的确切位置非常重要。浏览器可能会将请求交给操作系统的网络堆栈,然后该网络堆栈将尝试传递请求;取决于您在链中的位置,它可能看起来像是“移交给堆栈中的下一个处理程序”,但它实际上并没有离开你的机器。好吧,那么我的下一个问题是,如果这个IP是用户路由器的IP,它是通电的,但根本不是网络服务器……但是它们是开着的,可以ping-ed。而这个链就是我的浏览器->代理1->代理2->IP,我的请求是否可以在整个代理路径上通过网络传输?@TinTran不可能我知道。完全取决于这些代理。真的吗?好的,所以我只想知道它是否经过某个路径,不必是ping-ed的确切路径。如果ping时有一个IP,那么请求是否通过某个路径发送到最终IP?@TinTran唯一可以确定的是,您的数据离开了您的机器并通过了网络。你甚至不能确定它是否到达Proxy1。但即使它真的这么做了,Proxy1可能会也可能不会只是默默地阻止你。没有办法知道,这与两位将军的问题密切相关。这就是为什么服务器会以。。。响应。XD这是您的请求到达目的地的真实通知。当然,除非你能完全控制网络(我想不是这样)。@TinTran你的请求在到达目的地之前被丢弃的原因可能有很多。我认为IP黑名单是最常见的情况。我真的不能回答你的问题。