Workerman-Entwicklung: So implementieren Sie einen Webserver basierend auf dem HTTP2-Protokoll
HTTP2 ist eine Version der neuen Generation des HTTP-Protokolls, die Leistung und Sicherheit erheblich verbessert hat. Workerman ist ein häufig verwendetes PHP-Echtzeit-Kommunikationsframework, das die Vorteile hoher Leistung, einfacher Erweiterung und Benutzerfreundlichkeit bietet. Wie implementiert man einen Webserver basierend auf dem HTTP2-Protokoll? In diesem Artikel werden die folgenden Aspekte vorgestellt:
1. Verständnis der Eigenschaften des HTTP2-Protokoll
Das HTTP2-Protokoll ist eine Version der neuen Generation des HTTP-Protokolls, die Leistung und Sicherheit erheblich verbessert hat. Im Vergleich zum HTTP1.x-Protokoll weist es die folgenden Merkmale auf:
2. Wie unterstützt Workerman das HTTP2-Protokoll?
Workerman ist ein häufig verwendetes PHP-Echtzeit-Kommunikationsframework. Es wurde ursprünglich für die Implementierung einer Hochleistungskommunikation basierend auf dem TCP-Protokoll entwickelt . Workerman verwendet standardmäßig das HTTP1.x-Protokoll, unterstützt aber auch das HTTP2-Protokoll.
Grundvoraussetzung für die Implementierung des HTTP2-Protokolls ist ein SSL-Zertifikat, da das HTTP2-Protokoll nur die Verwendung im Verschlüsselungsmodus unterstützt. Daher müssen wir das SSL-Zertifikat in Workerman so konfigurieren, dass es das HTTP2-Protokoll unterstützt. Die spezifische Konfigurationsmethode lautet wie folgt:
$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. Implementieren Sie den spezifischen HTTP2-Protokoll-Webserver
Nachdem Workerman das HTTP2-Protokoll unterstützt, können wir den HTTP2-Protokoll-Webserver implementieren. Es gibt viele spezifische Implementierungsmethoden. Hier nehmen wir die Implementierung eines einfachen HTTP2-Protokoll-Webservers.
<?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();
Führen Sie den folgenden Befehl aus, um den Webserver zu starten:
php http2_server.php start -d
Zu diesem Zeitpunkt, wenn Sie verwenden Wenn Sie einen Browser für den Zugriff auf https://localhost verwenden, sollten Sie die Seite mit dem Inhalt Hallo, HTTP2! sehen können.
4. Codebeispiel
Der Code wurde im dritten Teil angegeben, und der vollständige Code wird hier noch einmal angegeben. Sie müssen lediglich /your/path/to/server.crt und /your/path/to/server.key durch Ihren eigenen SSL-Zertifikatspfad ersetzen.
<?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();
Zusammenfassung
Das HTTP2-Protokoll ist eine neue Generation des HTTP-Protokolls. Im Vergleich zum HTTP1.x-Protokoll wurde es hinsichtlich Leistung und Sicherheit erheblich verbessert. Workerman ist ein häufig verwendetes PHP-Echtzeit-Kommunikationsframework, das das HTTP2-Protokoll unterstützt. In diesem Artikel wird beschrieben, wie Sie mit Workerman einen Webserver basierend auf dem HTTP2-Protokoll implementieren, einschließlich der Konfiguration eines SSL-Zertifikats und der Implementierung eines bestimmten Webservers.
Das obige ist der detaillierte Inhalt vonWorkerman-Entwicklung: So implementieren Sie einen Webserver basierend auf dem HTTP2-Protokoll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!