You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

浏览器意外显示Content-Type响应头行的问题求助

浏览器意外显示Content-Type响应头行的问题求助

我最近在尝试搭建Apache的CGI环境,按照相关文档写了个极简的Perl脚本,结果遇到了奇怪的问题——浏览器居然把本该作为响应头的Content-Type行直接显示出来了,而不是只显示页面内容。

先说说我的脚本情况:我写的脚本叫first.pl,一开始是这样的:

#!/usr/bin/perl

print "Content-Type: text/html; charset=utf-8\n\n";

print "Hello, World.";

后来朋友提醒我说\n的含义是系统相关的,HTTP要求的是CR-LF(也就是\r\n)分隔响应头和内容,我又改成了:

#!/usr/bin/perl

print "Content-Type: text/html; charset=utf-8\r\n\r\n";

print "Hello, World.";

但两种写法的结果完全一样——当我在Chrome里访问localhost/~mylogin/first.pl时,页面显示的是:

Content-Type: text/html; charset=utf-8

Hello, World.

而文档里明确说应该只显示一行“Hello, World.”才对。我还试过把charset部分去掉,结果还是会显示Content-Type那一行,查了资料说加charset可能有用,但实际没区别。

再说说我做的配置(我用的是Mac Monterey 12.6.6):

  • 从默认的httpd.conf文件开始,我只做了这几个修改:
    • 取消注释了 LoadModule perl_module libexec/apache2/mod_perl.so
    • 取消注释了 LoadModule userdir_module libexec/apache2/mod_userdir.so
    • 取消注释了 Include /private/etc/apache2/extra/httpd-userdir.conf
  • 在/etc/apache2/extra/httpd-userdir.conf里,取消注释了 Include /private/etc/apache2/users/*.conf
  • 我创建了/etc/apache2/users/mylogin.conf,内容是:
<Directory "/Users/mylogin/Sites/">
    AddLanguage en .en
    AddHandler perl-script .pl
    PerlHandler ModPerl::Registry
    Options Indexes MultiViews FollowSymLinks ExecCGI
    AllowOverride None
    Require host localhost
</Directory>
  • 执行了命令:chmod +a "_www allow execute" ~
  • 后来又按照Apache的说明,在httpd.conf里加了这段配置:
<Directory "/Users/mylogin/Sites">
    Options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

我感觉这应该是某个基础配置出了问题,有没有大佬能给点建议呀?

备注:内容来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:49:40