Workerman Development : Comment implémenter un serveur Web basé sur le protocole HTTP2
HTTP2 est une version de nouvelle génération du protocole HTTP, qui a considérablement amélioré les performances et la sécurité. Workerman est un framework de communication PHP en temps réel couramment utilisé, qui présente les avantages de hautes performances, d'extension facile et de facilité d'utilisation. Comment implémenter un serveur web basé sur le protocole HTTP2 ? Cet article présentera les aspects suivants :
1. Comprendre les caractéristiques du protocole HTTP2 Protocole HTTP2
Le protocole HTTP2 est une version nouvelle génération du protocole HTTP, qui a grandement amélioré les performances et la sécurité. Par rapport au protocole HTTP1.x, il présente les caractéristiques suivantes :
2. Comment Workerman prend-il en charge le protocole HTTP2 ?
Workerman est un framework de communication en temps réel PHP couramment utilisé. Il a été initialement conçu pour implémenter une communication haute performance basée sur le protocole TCP, mais il prend également en charge le protocole HTTP. . Workerman utilise le protocole HTTP1.x par défaut, mais il prend également en charge le protocole HTTP2.
La condition de base pour mettre en œuvre le protocole HTTP2 est d'avoir un certificat SSL, car le protocole HTTP2 ne supporte qu'une utilisation en mode cryptage. Par conséquent, nous devons configurer le certificat SSL dans Workerman pour prendre en charge le protocole HTTP2. La méthode de configuration spécifique est la suivante :
$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. Implémentez le serveur Web du protocole HTTP2 spécifique
Une fois que Workerman a pris en charge le protocole HTTP2, nous pouvons implémenter le serveur Web du protocole HTTP2. Il existe de nombreuses méthodes d'implémentation spécifiques. Nous prenons ici comme exemple l'implémentation d'un serveur Web de base avec le protocole HTTP2.
<?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();
Exécutez la commande suivante pour démarrer le serveur web :
php http2_server.php start -d
A ce moment, si vous utilisez un navigateur pour accéder à https://localhost, vous devriez pouvoir voir la page avec le contenu Hello, HTTP2!.
4. Exemple de code
Le code a été donné dans la troisième partie, et le code complet est à nouveau donné ici. Il vous suffit de remplacer /your/path/to/server.crt et /your/path/to/server.key par votre propre chemin de certificat 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();
Résumé
Le protocole HTTP2 est une version nouvelle génération du protocole HTTP Par rapport au protocole HTTP1.x, il a été grandement amélioré en termes de performances et de sécurité. Workerman est un framework de communication PHP en temps réel couramment utilisé qui prend en charge le protocole HTTP2. Cet article décrit comment utiliser Workerman pour implémenter un serveur Web basé sur le protocole HTTP2, notamment la configuration d'un certificat SSL et l'implémentation d'un serveur Web spécifique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!