Closed matyhtf closed 5 years ago
目前底层提供的Response::header()方法第二个参数为String类型,不支持设置多个的 Http Header。
Response::header()
String
根据Http协议,Http Header是可以重复的。因此需要修改Http\Response::header方法,可以设置多个Http Header。
Http
Http Header
Http\Response::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头。
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
Response
Key
Value
感觉不那么重要,都是通过自己多次设置 header 解决.
现状
目前底层提供的
Response::header()
方法第二个参数为String
类型,不支持设置多个的 Http Header。根据
Http
协议,Http Header
是可以重复的。因此需要修改Http\Response::header
方法,可以设置多个Http Header
。代码
对端浏览器将收到一个重复的
X-Info
头。实现
Http\Response::header
支持设置数组Response
数据包时,检查Key
对应的Value
是字符串还是数组