【发布时间】:2023-03-30 04:54:01
【问题描述】:
HTTP 请求的第一行包含一个“目标”,它是以下之一:
request-target = origin-form
/ absolute-form
/ authority-form
/ asterisk-form
origin-form 是典型的,例如GET /hello-world HTTP/1.1。代理请求使用absolute-form:
GET https://example.com/ HTTP/1.1
假设该请求到达一个原始服务器,它只是试图为某个其他域提供服务。 (例如,假设我们将上述请求发送到en.wikipedia.org。)手头的服务器不希望成为代理服务器,也不希望完成发出的请求。它应该返回什么? (理想情况下,为什么?HTTP RFC 中是否有任何地方说明了这一点?)
(我查询了几台服务器以查看经验上会发生什么。我得到了主要是 500、200(但内容错误)、409 Conflict 和在一个特殊情况下形成无限的301 Moved Permanently循环。我觉得客户端向服务器发送代理请求是错误的,不能也不会实现它。服务器及其行为都没有错应该进行更改的区域完全取决于客户端,因此是 4xx,但我不清楚哪个是合适的。)
【问题讨论】: