인터넷 기술의 지속적인 개발로 네트워크 커뮤니케이션 효율성은 PHP 응용 프로그램 성능의 중요한 지표가되었습니다. 네트워크 통신을 합리적으로 최적화함으로써 응답 속도 속도를 높일뿐만 아니라 서버로드를 줄이고 전반적인 사용자 경험을 향상시킬 수 있습니다. 다음은 코드 예제와 함께 몇 가지 일반적이고 실용적인 성능 최적화 팁입니다.
HTTP/2는 업그레이드 된 버전의 HTTP 프로토콜입니다. 멀티플렉싱을 지원하고 동시에 여러 요청을 처리 할 수 있으며 헤더 정보를 압축하여 전송 된 데이터 양을 효과적으로 줄일 수 있습니다. HTTP/2를 구현하려면 서버와 클라이언트 가이 프로토콜을 지원하도록해야합니다. 샘플 코드는 다음과 같습니다.
<?php
$handler = new GuzzleHttpHandlerCurlMultiHandler();
$handler->setHandle($curlHandle);
$client = new GuzzleHttpClient([
'handler' => $handler,
'http_version' => '2.0',
]);
$response = $client->request('GET', 'https://example.com');
$body = $response->getBody()->getContents();
echo $body;
?>
지속적인 연결을 통해 하나의 TCP 연결에서 여러 HTTP 요청을 처리 할 수 있으므로 빈번한 연결 설정 및 폐쇄의 시간 간접비를 줄여 통신 효율이 향상됩니다. 연결을 추가하여 활성화하십시오 : 요청 헤더에 계속 유지하십시오 . 샘플 코드 :
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Connection: keep-alive']);
$body = curl_exec($ch);
curl_close($ch);
echo $body;
?>
캐시는 네트워크 요청 수를 크게 줄이고 응용 프로그램 성능을 향상시킬 수 있습니다. PHP는 종종 MemCached 또는 Redis를 사용하여 데이터베이스 압력을 줄이기 위해 핫스팟 데이터를 캐시합니다. 다음 예제는 Memcached to Cache 데이터를 사용하는 기본 사용을 보여줍니다.
<?php
$memcached = new Memcached();
$memcached->addServer('127.0.0.1', 11211);
$data = $memcached->get('key');
if ($data === false) {
$data = fetchDataFromDatabase();
$memcached->set('key', $data, 3600); // 1 시간 동안 캐시
}
echo $data;
?>
GZIP와 같은 압축 기술을 활성화함으로써 데이터 전송 크기를 효과적으로 줄이고 로딩 속도를 향상시킬 수 있습니다. PHP에서는 OB_GZHANDLER를 사용하여 출력 압축을 활성화 할 수 있습니다. 예:
<?php
$data = fetchDataFromDatabase();
ob_start('ob_gzhandler'); // 할 수 있게 하다gzip압축
echo $data;
ob_end_flush();
?>
네트워크 커뮤니케이션 성능은 PHP 응용 프로그램의 응답 속도 및 사용자 경험에서 중요한 역할을합니다. 이 기사는 4 가지 최적화 전략을 소개합니다. HTTP/2 프로토콜을 사용하여 영구 연결, 캐싱 기술 및 데이터 압축을 가능하게하는데, 이는 PHP 네트워크의 통신 효율성을 향상시키는 효과적인 수단입니다. 이 팁이 개발자가보다 효율적이고 안정적인 PHP 응용 프로그램을 만드는 데 도움이되기를 바랍니다.