HTTP 403 禁止消息格式

HTTP 403 Forbidden Message Format

发送 HTTP 403 禁止消息的正确格式是什么?

我正在用 c 语言为一个内置内容过滤系统的作业项目编写代理。当我的代理检测到服务器的响应包含内容黑名单中的某些关键字时,我想发送HTTP 403 禁止消息。

目前,我按照以下标准发送消息:“HTTP/1.1 403 Forbidden\r\n\r\n”(不带引号):https://www.rfc-editor.org/rfc/rfc7231#section-6.5.3

当我发送这条消息时,浏览器没有显示错误,看起来它仍在尝试加载页面。

是否有任何我错过的此 HTTP 消息的必填 header 字段?另外,这是 403 错误的正确用法吗?我找不到其他更合适的东西,所以我选择了 403,因为客户端不会自动 re-request 数据。

在此先感谢您的帮助!

对于那些像我一样努力解决这个问题的人,您需要确保关闭套接字或设置 Connection: Close,如 Sami 在评论中指出的那样。我假设您可以将其保持打开状态,以便他们可以使用 http 持久连接发送另一个请求,但他们需要打开一个新连接。

至于显示的 html,您可以发送一个包含您想要显示的 html 的响应正文(确保您设置了 Content-Length)。

最后,这里有两个参考,一个是 HTTP 响应规范,另一个是 Amazon Restful 响应规范:

https://www.rfc-editor.org/rfc/rfc7231#section-6.5.3

https://developer.amazon.com/docs/amazon-drive/ad-restful-api-response-codes.html