热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何检测站点是否支持PHP中的HTTP/2

如何解决《如何检测站点是否支持PHP中的HTTP/2》经验,为你挑选了1个好方法。

PHP中是否有一种简单的方法来测试URL是否支持HTTP/2?我试图检查连接升级或H2在curl_setopt($curl, CURLOPT_HEADER, true)按照HTTP/2鉴定的规格.有许多站点可以添加URL,它会告诉站点是否支持HTTP/2.只是想知道他们是如何测试它的,以及是否可以在PHP中完成类似的事情.在命令行上我可以做类似的事情$ curl -vso --http2 https://www.example.com/



1> Tom Udding..:

您的服务器和cURL的安装都需要支持HTTP/2.0.之后,您可以只生成一个正常的cURL请求,并添加CURLOPT_HTTP_VERSION使cURL尝试发出HTTP/2.0请求的参数.之后,您必须检查请求中的Headers以检查服务器是否确实支持HTTP/2.0.

例:

$url = "https://google.com";
$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL            => $url,
    CURLOPT_HEADER         => true,
    CURLOPT_NOBODY         => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_2_0, // cURL will attempt to make an HTTP/2.0 request (can downgrade to HTTP/1.1)
]);
$respOnse= curl_exec($ch);

现在,您需要检查cURL是否确实发出了HTTP/2.0请求:

if ($response !== false && strpos($response, "HTTP/2.0") === 0) {
    echo "Server of the URL has HTTP/2.0 support."; // yay!
} elseif ($response !== false) {
    echo "Server of the URL has no HTTP/2.0 support."; // nope!
} else {
    echo curl_error($ch); // something else happened causing the request to fail
}
curl_close($ch);


推荐阅读
author-avatar
mobiledu2502853463
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有