2017-11-17 3 views
10

URL에서 HTTP/2를 지원하는지 PHP에서 테스트 할 수있는 간단한 방법이 있습니까? 나는 curl_setopt($curl, CURLOPT_HEADER, true)에서 HTTP/2 identification in the specs에 따라 연결 업그레이드 또는 h2를 확인하려고 노력했다. URL을 추가 할 수있는 사이트가 많이 있으며 사이트에서 HTTP/2를 지원하는지 여부를 알려줍니다. PHP가 어떻게 테스트하고 있는지, PHP에서 비슷한 것이 있을지 궁금하다. 명령 줄에서 다음과 같이 할 수 있습니다. $ curl -vso --http2 https://www.example.com/사이트가 PHP에서 HTTP/2를 지원하는지 확인하는 방법

답변

15

서버와 cURL 설치 모두 HTTP/2.0을 지원해야합니다. 그런 다음 정상적인 cURL 요청을 만들고 CURLOPT_HTTP_VERSION 매개 변수를 추가하면 cURL이 HTTP/2.0 요청을하려고합니다. 그 후 서버가 실제로 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); 
: 컬은 참으로 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); 

지금 당신이 확인해야합니다

관련 문제