给服务器响应200,在我的服务器上发布基本的HTTP/1.0 200正常响应时,Apache内部服务器出错?肯定是在印刷纽林...

本文讨论了在CGI脚本中如何正确设置HTTP响应头,包括状态码、Content-Type和换行符的使用。指出了一种常见的错误,即在HTTP响应头中混合使用了 和 ,导致格式错误。建议只在最后一个头部使用 ,并且在结束时使用两个新行表示头部的结束。还提到了如何通过设置'Content-Type'和'Status'头来改变HTTP状态和内容类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是的,肯定是错了。在

您应该有“\r\n”,但如果您将脚本用作CGI,则不必担心这一点。在

您只能使用“\n”,一切都将正常工作。在

另外,我不认为Apache会让您选择要使用的协议,因此您不应该使用第一行:print "HTTP/1.0 200 OK"200“确定”是一个状态,在成功后将返回该状态

如果确实需要更改状态,请使用status HTTP header,Apache将对此进行调整:

打印“状态:400禁止”

你的脚本应该是:

^{pr2}$

请注意,我只在最后一个头上使用了“\n”,其他地方都没有。在

这是因为print会自动添加“\n”,除非您另有说明,但最后一个页眉必须用两个新行“\r\n\r\n”与文档正文分开,这就是为什么您应该只在最后一个页眉上使用它。它表示标头的结尾。在

或者您可以:print "Content-Type: text/html"

print

不带参数的Print将只打印“\n”,正如我之前所说,Apache将正确地将它们解释为“\r\n”

在你的例子中,你的标题看起来像这样:"""

HTTP/1.0 200 OK

\rContent-Type: text/html

\r

\r

"""

这显然是个错误的标题。:天

如果不使用脚本作为CGI,则规则可能有所不同,但只是略有不同。在

如果必须强制执行HTTP/1.0行为,请使用头连接头:print "Connection: close"

尽管连接是否会被关闭取决于客户端和Apache的超时。我不确定协议是否会改为HTTP1.0。默认值为1.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值