현대 웹 개발에서 HTTP/2 프로토콜은 효율적인 멀티플렉싱 특성으로 인해 점차 주류가되었습니다. 그러나 HTTP/2의 장점을 최대한 활용하려면 연결 관리 및 유지 보수가 특히 중요합니다. HTTP/2 연결 수명주기를 확장하는 데 사용되는 도구로서 CURL_UPKEEP () 함수는 빈번한 연결 설정 및 파괴를 효과적으로 줄이고 요청 효율을 더욱 향상시킬 수 있습니다. 이 기사는 Curl_UpKeep () 함수를 사용하여 HTTP/2 연결을 최적화하는 방법을 심층적으로 탐색합니다.
HTTP/2는 HTTP 프로토콜의 두 번째 주요 버전입니다. HTTP/1.1과 비교하여 주로 다음을 포함하는 많은 최적화가 있습니다.
멀티플렉싱 : HTTP/2는 HTTP/1.1에서 헤드 오브 라인 차단을 피하면서 단일 연결에서 여러 요청과 응답을 병렬로 보낼 수 있습니다.
헤더 압축 : HTTP/2는 HPACK 압축 기술을 사용하여 요청 및 응답 헤더를 압축하여 네트워크 전송 부담을 줄입니다.
서버 푸시 : 서버가 클라이언트가 요청하기 전에 클라이언트에 리소스를 적극적으로 보낼 수 있습니다.
이러한 기능을 통해 HTTP/2는 페이지 로딩 속도를 크게 향상시키고 대기 시간을 줄일 수 있습니다.
curl_upkeep () 는 PHP 확장 라이브러리의 함수입니다. HTTP/2 연결을 활성으로 유지하여 빈번한 연결 설정 및 폐쇄로 인한 성능 오버 헤드를 줄입니다. Curl_Upkeep ()는 연결의 수명주기를 연장함으로써 특히 많은 요청이 필요한 경우 요청의 효율성을 효과적으로 향상시킬 수 있습니다.
HTTP/2 프로토콜에서는 각 연결에 추가 시간이 필요하고 리소스를 계산해야하므로 지속적인 연결을 유지하는 것이 중요합니다. Curl_upkeep ()을 사용하면 연결이 생존 할 수있게되어 연결이 빈번한 재건을 피하여 대기 시간 및 자원 소비가 줄어 듭니다.
PHP의 Curl_Upkeep () 함수를 사용하여 HTTP/2 요청을 최적화하려면 먼저 PHP 환경이 HTTP/2 및 CURL 확장을 지원하는지 확인해야합니다. 다음으로 코드를 통해이 기능을 구현하는 방법을 설명합니다.
컬 확장을 설치하고 구성하십시오
PHP 설치에서 Curl Extension이 활성화되어 있는지 확인하십시오. 활성화되지 않은 경우 다음 명령으로 설치할 수 있습니다.
sudo apt-get install php-curl
PHP 구성 파일에서 CURL EXTENSION 활성화 PHP.INI :
extension=curl.so
curl_upkeep ()를 사용하여 PHP 스크립트 작성
다음은 HTTP/2 연결의 수명주기를 확장하기 위해 Curl_UpKeep () 함수를 사용하는 방법을 보여주는 간단한 PHP 예입니다.
<?php
// 초기화 cURL 세션
$ch = curl_init();
// 설정 URL,사용하십시오 HTTPS 규약
curl_setopt($ch, CURLOPT_URL, "https://m66.net/api/data");
// 할 수 있게 하다 HTTP/2
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
// 설정超时时间,장기 요청을 피하십시오
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// 할 수 있게 하다持久连接,빈번한 연결 설정의 시간 간접비를 줄입니다
curl_setopt($ch, CURLOPT_FORBID_REUSE, false); // 연결 다중화를 허용합니다
// 열려 있는 keep-alive 연결 수명주기를 연장하는 메커니즘
curl_setopt($ch, CURLOPT_TCP_KEEPALIVE, true);
curl_setopt($ch, CURLOPT_TCP_KEEPIDLE, 60); // 유휴 상태를 유지하십시오 60 두번째
curl_setopt($ch, CURLOPT_TCP_KEEPINTVL, 30); // 모든 30 두번째发送一次保持活动包
// 요청을 보내십시오
$response = curl_exec($ch);
// 오류를 확인하십시오
if(curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo "Response: " . $response;
}
// 폐쇄 cURL 세션
curl_close($ch);
?>
curl_http_version_2_0 : http/2 프로토콜을 활성화합니다.
Curl_Forbid_Reuse : 요청할 때마다 새로운 연결을 생성하지 않도록 연결을 멀티플렉싱 할 수 있습니다.
Curl_TCP_KEEPALIVE : 연결 유지 기능을 활성화하여 연결을 활성화합니다.
Curl_TCP_KEEPIDLE : 연결이 유휴 상태가되도록 시간 초과 시간 (단위 : 초)을 설정합니다. 즉,이 시간 내에 데이터가 전송되지 않으면 연결이 유지됩니다.
Curl_TCP_KEEPINTVL : Keep-Alive 패킷을 보내는 사이에 시간을 설정합니다.
HTTP/2 연결의 유지 정책을 합리적으로 배치함으로써 Curl_UpKeep () 함수는 특히 동일한 호스트에 자주 액세스 할 때 요청 효율을 향상시켜 새로운 연결을 설정하는 시간 간접비를 줄일 수 있습니다. 이러한 방식으로 네트워크 대기 시간을 줄일뿐만 아니라 서버 컴퓨팅 리소스를 저장하고 사용자 경험을 향상시킬 수 있습니다.
HTTP/2 프로토콜을 사용하는 경우 Curl_UPKEEP () 함수를 통해 연결 수명주기를 확장하면 연결 설정 및 폐쇄 빈도를 효과적으로 줄여 요청 효율을 향상시킬 수 있습니다. PHP의 CURL Extension은 유연한 구성 옵션을 제공하여 개발자가 연결 관리 정책을 미세 조정하고 HTTP/2의 성능 이점을 활용할 수 있도록합니다.
이 기사의 소개가 Curl_upkeep () 함수를 더 잘 이해하고 사용하여 PHP 응용 프로그램에서 HTTP/2 성능을 향상시키는 데 도움이되기를 바랍니다.