ホームページ > 記事 > PHPフレームワーク > Workerman 開発: HTTP2 プロトコルに基づいた Web サーバーを実装する方法
Workerman 開発: HTTP2 プロトコルに基づいて Web サーバーを実装する方法
HTTP2 は、パフォーマンスとパフォーマンスが大幅に向上した HTTP プロトコルの新世代バージョンです。セキュリティの向上。 Workerman は、一般的に使用されている PHP リアルタイム通信フレームワークであり、高性能、拡張が容易、使いやすいという利点があります。 HTTP2 プロトコルに基づいて Web サーバーを実装するにはどうすればよいですか?この記事では、次の点について説明します。
1. HTTP2 プロトコルの特性を理解する
HTTP2 プロトコルは、HTTP プロトコルの新世代バージョンです。パフォーマンスとセキュリティの向上。 HTTP1.x プロトコルと比較すると、次のような特徴があります。
2. Workerman による HTTP2 プロトコルのサポート方法
Workerman は、一般的に使用される PHP リアルタイム通信フレームワークであり、元々は TCP プロトコルに基づいた高性能通信を実装するために設計されました。 、ただし、HTTP プロトコルもサポートします。 Workerman はデフォルトで HTTP1.x プロトコルを使用しますが、HTTP2 プロトコルもサポートします。
HTTP2 プロトコルは暗号化モードでの使用のみをサポートしているため、HTTP2 プロトコルを実装するための基本条件は SSL 証明書を持っていることです。したがって、HTTP2 プロトコルをサポートするように Workerman で SSL 証明書を構成する必要があります。具体的な設定方法は次のとおりです:
$context = array( // 这是key, 一般和crt放在一起 'ssl' => array( // 请使用绝对路径 'local_cert' => '/your/path/to/server.crt', // 服务端证书 'local_pk' => '/your/path/to/server.key', // 服务端证书的私钥 'verify_peer' => false, // 是否需要验证客户端证书 ) ); // 初始化一个Worker监听http://0.0.0.0:443 $worker = new Worker("http://0.0.0.0:443", $context); // 开启对HTTP2.0的支持 $worker->transport = 'ssl'; $worker->protocol = "Http2";
3. 特定の HTTP2 プロトコル Web サーバーの実装
Workerman が HTTP2 プロトコルをサポートしたら、HTTP2 プロトコル Web サーバーを実装できます。具体的な実装方法は数多くありますが、ここでは基本的な HTTP2 プロトコルの Web サーバーの実装を例に挙げます。
<?php require_once __DIR__ . '/../vendor/autoload.php'; $context = array( 'ssl' => array( 'local_cert' => '/your/path/to/server.crt', 'local_pk' => '/your/path/to/server.key', 'verify_peer' => false, ) ); $worker = new WorkermanWorker('http://0.0.0.0:443', $context); $worker->transport = 'ssl'; $worker->protocol = "Http2"; $worker->onConnect = function($connection) { echo "new connection from ip " . $connection->getRemoteIp() . " "; }; $worker->onMessage = function($connection, $data) { $request_uri = $_SERVER['REQUEST_URI']; $response = "Hello, HTTP2! "; $connection->send($response); }; Worker::runAll();
実行 次のコマンドにより Web サーバーが起動します:
php http2_server.php start -d
この時点で、ブラウザを使用して https://localhost にアクセスすると、「Hello, HTTP2!」という内容のページが表示されるはずです。
4. コード例
コードは 3 番目のパートで示されており、完全なコードはここで再度示されます。 /your/path/to/server.crt と /your/path/to/server.key を独自の SSL 証明書パスに置き換えるだけです。
<?php require_once __DIR__ . '/../vendor/autoload.php'; $context = array( 'ssl' => array( 'local_cert' => '/your/path/to/server.crt', 'local_pk' => '/your/path/to/server.key', 'verify_peer' => false, ) ); $worker = new WorkermanWorker('http://0.0.0.0:443', $context); $worker->transport = 'ssl'; $worker->protocol = "Http2"; $worker->onConnect = function($connection) { echo "new connection from ip " . $connection->getRemoteIp() . " "; }; $worker->onMessage = function($connection, $data) { $request_uri = $_SERVER['REQUEST_URI']; $response = "Hello, HTTP2! "; $connection->send($response); }; Worker::runAll();
概要
HTTP2 プロトコルは HTTP プロトコルの新世代バージョンで、HTTP1.x プロトコルと比較してパフォーマンスとセキュリティの面で大幅に向上しています。 Workerman は、HTTP2 プロトコルをサポートする、一般的に使用される PHP リアルタイム通信フレームワークです。この記事では、Workerman を使用して、SSL 証明書の構成や特定の Web サーバーの実装など、HTTP2 プロトコルに基づく Web サーバーを実装する方法について説明します。
以上がWorkerman 開発: HTTP2 プロトコルに基づいた Web サーバーを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。