swoole / rfc

Swoole 提案
116 stars 3 forks source link

RFC-1021: Http\Response::header 第二个参数支持数组,可设置多个相同的 Header #53

Closed matyhtf closed 5 years ago

matyhtf commented 5 years ago

现状

目前底层提供的Response::header()方法第二个参数为String类型,不支持设置多个的 Http Header

根据Http协议,Http Header是可以重复的。因此需要修改Http\Response::header方法,可以设置多个Http Header

代码

$http = new Swoole\Http\Server("127.0.0.1", 9501);
$http->on('request', function ($request, $response) {
    $response->header("X-Info", ["PHP", "Swoole"]);
    $response->header("X-Power-By", "Swoole");
    $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
});
$http->start();

对端浏览器将收到一个重复的X-Info头。

HTTP/2.0 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Sun, 21 Apr 2019 13:43:16 GMT
X-Info: PHP
X-Info: Swoole

实现

Moln commented 5 years ago

感觉不那么重要,都是通过自己多次设置 header 解决.