swoole学习之http_server服务器代码

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

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值