返回静态页面并设置状态码

返回静态页面并设置状态码

我的盘有/var/www/mywebsite/hello.html

每当有访客来访时http://mywebsite.com/hello.html,我希望状态代码为 123,而不是 200。

server {
    ...

    location /hello.html {
        return 123;
    }

我正在使用这个配置文件。当我去http://mywebsite.com/hello.html,我看到一个空白页,但状态代码是 123。

如何查看页面内容以及 123 状态码?

编辑:

我可以返回带有“402 Payment required”或“500 Internal Server Error”的 hello.html 吗?

我只需要语法。

答案1

HTTP 不会让你这样做:1xx 系列代码不能包含响应RFC2616(即HTTP协议):

10.1 信息 1xx

此类状态代码表示临时响应,包括仅有的状态行和可选标头的组成,并以空行终止。

因此,即使您可以使用 nginx 来执行此操作(我猜这是可能的),您的浏览器也可能不会显示发送的内容。
(不显示通过不应包含数据的响应发送的数据实际上是一种使攻击者更难利用服务器错误的好方法,这些错误允许攻击者使浏览器发出无效请求,在其错误处理中他们可以注入自己的数据;所以,为浏览器用户提供轻松的安全保障,而不会破坏任何非网络服务器可怕地配置错误。)

相关内容