swoole学习之http服务器代码
Http\Server介绍
Http\Server 继承自 Server,所以 Server 提供的所有 API 和配置项都可以使用,进程模型也是一致的
内置 HTTP 服务器的支持,通过几行代码即可写出一个高并发,高性能,异步 IO 的多进程 HTTP 服务器。
<?php
//创建Server对象,监听 127.0.0.1:9501端口
$http_server = new Swoole\Http\Server('0.0.0.0', 9501);
$http_server->on('request', function ($request, $response) {
//打印一下传过来的参数信息
var_dump($request);
//为了防止两次请求,需要做判断
if ($request->server['path_info'] == '/favicon.ico' || $request->server['request_uri'] == '/favicon.ico') {
//表示 发送 Http 响应体,并结束请求处理
$response->end();
return;
}
list($controller, $action) = explode('/', trim($request->server['request_uri'], '/'));
echo 'controller==' . $controller . PHP_EOL;
echo '$action==' . $action . PHP_EOL;
//设置head头
$response->header('Content-Type', 'text/html; charset=utf-8');
//end发送 Http 响应体,并结束请求处理。
$response->end("<h1> Hello qipa250.com" . rand(1000, 9999) . "</h1>");
});
//启动服务
$http_server->start();
?>
启动http_server:
php httpService.php
我们在浏览器中访问http_server,
http://20.20.24.131:9501/qipa250/hao?qipa=250
可以看到打印的内容
可以看到服务端,打印接收到的内容如下
修改服务端内容
<?php
//创建Server对象,监听 127.0.0.1:9501端口
$http_server = new Swoole\Http\Server('0.0.0.0', 9501);
$http_server->on('request', function ($request, $response) {
//打印一下传过来的参数信息
echo "<pre>";
print_r($request);
修改后,必须关闭http_server服务,再执行启动命令才有效果,否则无效
再次浏览器中访问
http://20.20.24.131:9501/qipa250/hao?qipa=qipa250.com
服务端查看得到
设置cookie的值
//设置cookie的值
$response->cookie('home_url', 'www.qipa250.com');
//end发送 Http 响应体,并结束请求处理。
$response->end('打印get的值:' . json_encode($request->get));
保存并重启http_server
在浏览器中访问http://20.20.24.131:9501/qipa250/hao?qipa=qipa250.com
查看cookie的值,发现有一个home_url 的key,value则是我们设置的值
httpserver访问静态文件
httpService.php 代码
<?php
//创建Server对象,监听 127.0.0.1:9501端口
$http_server = new Swoole\Http\Server('0.0.0.0', 9501);
//配置静态文件参数
$http_server->set([
'enable_static_handler' => true,
'document_root' => '/data/web/swoole_mooc/static'
]);
$http_server->on('request', function ($request, $response) {
//打印一下传过来的参数信息
/* echo "<pre>";
print_r($request);*/
//为了防止两次请求,需要做判断
if ($request->server['path_info'] == '/favicon.ico' || $request->server['request_uri'] == '/favicon.ico') {
//表示 发送 Http 响应体,并结束请求处理
$response->end();
return;
}
list($controller, $action) = explode('/', trim($request->server['request_uri'], '/'));
echo 'controller==' . $controller . PHP_EOL;
echo '$action==' . $action . PHP_EOL;
//设置head头
$response->header('Content-Type', 'text/html; charset=utf-8');
//设置cookie的值
$response->cookie('home_url', 'www.qipa250.com');
//end发送 Http 响应体,并结束请求处理。
$response->end('打印get的值:' . json_encode($request->get));
});
//启动服务
$http_server->start();
?>
在/data/web/swoole_mooc/static 目录中创建index.html文件
内容如下
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>swoole学习之http_server服务器代码_徊忆羽菲的博客-优快云博客</title>
</head>
<body >
我是从httpserver跳转到这里的
</body></html>
浏览中访问:http://20.20.24.131:9501/index.html
在static目录中创建其他目录
我们在static目录下创建home目录,并创建index.html文件
内容如下:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>swoole学习之http_server服务器代码_徊忆羽菲的博客-优快云博客</title>
</head>
<body>
我是home目录的index页面,也是从http——server跳转到这里的
</body>
</html>
启动htt_server服务,在浏览中访问
http://20.20.24.131:9501/home/index.html