什么';s 305 HTTP状态码?如何正确使用它?

什么';s 305 HTTP状态码?如何正确使用它?,http,proxy,http-status-codes,Http,Proxy,Http Status Codes,我所发现的一切:“必须通过Location字段提供的代理访问请求的资源。Location字段提供代理的URI。收件人应通过代理重复此单个请求。305响应必须仅由源服务器生成。” 如何正确使用它?如果给定URL下没有代理怎么办?这是一个重定向,当您想告诉客户从其他地方获取内容时,可以使用它。在该词的口语用法中,给定的URI不必是“代理”。它只是最初请求的内容存在的另一个地方 人们用它来平衡负载。我不确定哪些客户端正确地实现了它,所以如果您只是想重定向,那么使用302会更安全 编辑 HTTP RFC

我所发现的一切:“必须通过Location字段提供的代理访问请求的资源。Location字段提供代理的URI。收件人应通过代理重复此单个请求。305响应必须仅由源服务器生成。”


如何正确使用它?如果给定URL下没有代理怎么办?

这是一个重定向,当您想告诉客户从其他地方获取内容时,可以使用它。在该词的口语用法中,给定的URI不必是“代理”。它只是最初请求的内容存在的另一个地方

人们用它来平衡负载。我不确定哪些客户端正确地实现了它,所以如果您只是想重定向,那么使用302会更安全

编辑


HTTP RFC中描述的预期用途示例:假设您有一个缓存代理,其上的内容来自真实服务器(源服务器)。如果有人以某种方式直接访问了真正的服务器,而您希望他们从代理服务器获取,那么您会发送305

很少使用的代码,如果客户端作为通信链中的代理,是否允许服务器发送该代码?也许不是,但检测代理很难。如果服务器后面有一个反向代理,这个代理会接受305错误并将其转发给HTTP客户端吗

通常情况下,重定向“直接访问”会使用安全代理访问,问题是为什么可以使用直接访问?以前的安全链肯定有问题

那么谁在乎在服务器端使用305呢?我希望你没有试图产生一个305响应


如果您是HTTP客户端,它只是一个类似302的重定向,您不需要知道您是否正在与代理交谈(有时很难知道)。

您是在什么环境下得到这个结果的?那么305和例如302之间的区别是什么?“接收者应该通过代理重复这个请求。”实际上没有太多,只是语义,当浏览器看到其中一个时,它基本上会做同样的事情。尽管302更有可能在更广泛的浏览器中实现。302有点被劫持了,因此添加了更多3xx代码,请查看RFC文档以了解更多信息。“收件人应通过代理重复此请求。”您正在挂断代理部分,而不是像squid或其他什么样的代理。。。这只是内容存在的另一个地方。和302一样,客户机需要在头的location字段中给出的URI处请求它想要的内容,而不是它刚刚命中的URI,并在那里得到302/305。我只是尝试实现305响应。我将状态代码设置为HTTP/1.1 305使用代理并设置了位置:但是浏览器和wget都不会重定向到它。我甚至还做了一个Set代理指令,但也没用。你们知道吗?