当php与g-wan一起使用时,如何设置http响应头

当php与g-wan一起使用时,如何设置http响应头,php,http-headers,http-status-codes,g-wan,Php,Http Headers,Http Status Codes,G Wan,我在hello.php示例中添加了header函数,如下所示: <?php header("xxxxx: yyyyy"); fwrite(STDOUT, "see headers.<br><br>Hello, PHP!<br>current working directory: ".getcwd()); exit(200); // return an HTTP code (200:'OK') ?> 但是在firebug中没有

我在hello.php示例中添加了header函数,如下所示:

<?php
   header("xxxxx: yyyyy");
   fwrite(STDOUT, "see headers.<br><br>Hello, PHP!<br>current working directory: ".getcwd());
   exit(200); // return an HTTP code (200:'OK')
?>

但是在firebug中没有找到这样的头。

谁能解释如何使用gwan在php cli中添加额外的头?

Tom是对的。要绕过G-WAN注入的HTTP头(因为您
返回了200
),您应该返回1-99范围内的值(无效的HTTP状态代码)

然后,将使用您自己的HTTP头(如果有)

返回0
表示紧密连接,
返回200-600
保留用于通知G-WAN生成相应HTTP头的HTTP返回代码

PDF手册是一本值得阅读的资源


关于
“fastCGI”
:它永远不会比从多个线程并行运行脚本更快。。。不涉及网络(在服务器和PHP之间)

添加的中间层或接口越多,速度就越慢,因为
“fastCGI”
通过使用网络的接口运行脚本必然比直接运行代码慢(我甚至没有提到PHP“fastCGI”这一事实)服务器速度非常慢,fastCGI协议本身毫无意义地复杂,因此速度很慢,最重要的是,fasctCGI实现远远不是次优的)

现在我们有了多核CPU,并行性不一定涉及水平可伸缩性(通过在许多连接的机器上运行代码获得的可伸缩性)

垂直扩展(在本地机器上的许多CPU内核上)要便宜得多(更快、更节能)


随着CPU内核的数量呈指数级增长,没有退路了:随着时间的推移,垂直扩展将变得越来越有意义。

多亏了吉尔和理查德,
现在,这是我根据你的建议所做的。PHP在gwan中使用定制的头

<?php
 $output='See headers....Hello, PHP!<br>from gwan';
   $len=strlen($output);
   fwrite(STDOUT, "HTTP/1.0\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: close\r\nContent-Length: $len\r\nxxxxx: yyyyy\r\n\r\n$output");
    exit(1);
?>

我使用
ab-c1000-n100000 http:127.0.0.1/?hello.php

内存使用量增加了0.7%,即2.9GiB=0.0203GiB
CPU使用率从20%增加到75%=50%(ab与gwan在同一台机器上运行)
我是在我的旧机器英特尔P9300 2.26GHz x 2,ubuntu 12.04上做的

它以9.543秒的速度完成,没有失败

关于10479req/sec

如果您正在运行CLI sapi,则无法设置标头-为什么在地球上运行超高速content server的任何人都希望通过最慢的接口将其连接到PHP?如果是,我应该通过gwan的处理程序添加标题吗?实际上,您应该使用fastCGI-但是IIRC没有官方支持的gwan端插件(闭源代码开发的乐趣),gwan让php飞起来。Gwan基准测试显示php的速度约为600k req/s(在xeon w3680 3.33GHz中)。尽管它比使用本机c servlet的gwan慢,但它的速度足以满足我的需要。有了php,我现在就可以使用gwan了。但对于c,我需要时间来学习。您是否尝试过将其添加到类似于fwrite的fwrite中(STDOUT,“xxxxx:yyyy\r\n\r\n查看标题…)?在C语言中,如果回复中已经有标头,G-WAN将不会添加标头。对于Intel Core2 Duo P9300@2.26GHz[passmark score:1509]:,这还不错(最近的CPU功能提高了10倍)。请注意,如果让G-WAN使用exit(200)生成HTTP头,这个PHP脚本将运行得更快;而不是出口(1);