🧌 常识系列 | 关于一次浏览器请求,程序为什么会执行两次?

Tinywan

问题 请求一次API控制器或onMessage回调会执行两次。这个是由于两次请求的url是不同的

案例代码

<?php
/**
 * @desc 小常识
 * @author Tinywan(ShaoBo Wan)
 */
declare(strict_types=1);

require_once __DIR__ . '/../../vendor/autoload.php';

use Workerman\Connection\TcpConnection;
use Workerman\Protocols\Http\Request;
use Workerman\Worker;

$worker = new Worker('http://0.0.0.0:8288');
$worker->onMessage = function (TcpConnection $connection, Request $request) {
    var_dump($request->uri());
    $connection->send('hello');
};

Worker::runAll();

访问 通过浏览器请求访问 http://127.0.0.1:8288/?name=Tinywan

打印结果

string(14) "/?name=Tinywan"
string(12) "/favicon.ico"

可以很清楚看到多了一次请求图标 /favicon.ico

方案 如何避免多次请求呢

通过curl请求,就会只输出一条记录啦!

curl http://127.0.0.1:8288/?name=Tinywan
163 0 0
0个评论

Tinywan

14160
积分
0
获赞数
0
粉丝数
2020-01-14 加入
🔝