Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS定数の使い方

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS定数は、PHPのcURL拡張機能で、HTTPリクエストなどによるサーバーへのデータ送受信を行う際の接続動作を制御するために使われる定数です。具体的には、「Happy Eyeballs」と呼ばれるアルゴリズムにおけるタイムアウト値をミリ秒単位で設定するために使用されます。

Happy Eyeballsとは、クライアントがWebサーバーなどに接続する際、そのサーバーがIPv4とIPv6の両方のアドレスを持っている場合に、より速く、そして確実に接続を確立するための賢い仕組みです。通常、IPv6の接続試行を優先して開始しますが、同時に短い時間差でIPv4の接続試行も開始します。この「時間差」の間にどちらかの接続が先に成功すれば、それを利用して通信を開始することで、接続の遅延を最小限に抑え、ユーザー体験を向上させることを目指します。

このCURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS定数は、curl_setopt()関数と組み合わせて使用し、最初の接続試行(一般的にはIPv6)がどれくらいの時間(ミリ秒)応答しなかったら、次の接続試行(一般的にはIPv4)を開始するか、という待機時間を指定します。例えば、この値を200に設定した場合、IPv6での接続試行を開始してから200ミリ秒以内に応答がなければ、並行してIPv4での接続試行も開始されることになります。

この値を適切に設定することで、特定のネットワーク環境下でIPv6接続に時間がかかったり、不安定であったりする場合でも、素早くIPv4へのフォールバックを促し、Webリクエストの全体的な応答性を向上させることが期待できます。システムエンジニアを目指す方にとって、ネットワーク接続の最適化を理解し、実際に活用するための一つの重要なオプションとなるでしょう。

構文(syntax)

1<?php
2$ch = curl_init();
3curl_setopt($ch, CURLOPT_URL, "http://example.com");
4curl_setopt($ch, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, 300); // 300ミリ秒のタイムアウトを設定
5$response = curl_exec($ch);
6curl_close($ch);
7?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ