https://wiki.swoole.com/zh-cn/#/http_server?id=header
http服务端类似apache或者nginx,但是http服务端功能可能不足可以用nginx反代理。
可以使用http2协议,从swoole5开始默认启用http2。
可以设置响应的header。
可以设置ssl,若使用代理应该在nginx中设置,apache反代理设置不方便。
swoole本身就是一个框架,但是没有数据库、中间件和路由等功能,一般写http项目不会直接使用。
其余高性能框架包括hyperf、phalcon、yaf等。
php高性能框架参考
https://www.php.cn/faq/1763578.html
https://blog.csdn.net/xzp19841203xzp/article/details/146381181
在$http->on()监听事件request的回调中设置header。
$reponse->header('Content-Type', 'application/json; charset=utf-8');$reponse->header('access-control-allow-credentials', 'true');$reponse->header('access-control-allow-methods', 'GET,HEAD,POST,OPTIONS');$reponse->header('access-control-allow-headers', 'content-type,Authorization');$reponse->header('Access-Control-Allow-Private-Network', 'true');$origin = empty($request->header['origin']) ? '*' : $request->header['origin'];$reponse->header('access-control-allow-origin', $origin);
参考
https://www.cnblogs.com/jingjingxyk/p/17609180.html
请求类 swoole\http\request
获取信息
$request->header //获取请求头信息$request->header['x-real-ip'] //获取真实ip$request->server//获取请求相关服务器信息$request->get //获取get请求参数$request->post //获取post请求$request->cookie //获取cookie请求$request->files //获取上传文件$request->getContent() //获取原始post包体$request->getData() //获取完整的原始http请求报文 http2下无法使用$request->getMethod() //获取请求方法
操作
$request->create() //创建请求对象$request->parse() //解析数据包长度 $request->isCompleted() //判断请求数据包是否已达到结尾
响应类 swoole\http\response
设置
$request->header() //设置响应头$request->trailer() //仅在http2中将header信息附加到响应末尾$request->cookie() //设置cookie$request->rawCookie() //设置cookie 不进行编码处理$request->status() //设置返回状态$request->redirect() //设置跳转
操作
$request->write() //向浏览器发送内容$request->sendfile() //发送文件到浏览器$request->end() //结束请求$request->detach() //分离响应对象 需要在task进程中发出响应对象$request->create() //创建响应对象$request->isWritable() //判断响应对象是否已结束或已分离
样例代码,请查看阅读原文。