【PHP8.x】CURLOPT_EXPECT_100_TIMEOUT_MS定数の使い方
CURLOPT_EXPECT_100_TIMEOUT_MS定数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
CURLOPT_EXPECT_100_TIMEOUT_MS定数は、PHPのcURL拡張機能において、HTTP/1.1プロトコルを利用したネットワーク通信における「Expect: 100-continue」メカニズムのタイムアウト時間を設定するためのオプション値を表す定数です。
PHPのcURL拡張機能は、ウェブサーバーなどとデータをやり取りする際に広く利用されます。特に大きなデータをサーバーに送信する場合、クライアント側(PHPスクリプトなど)は、まずサーバーがデータを受け取る準備ができているかを確認することがあります。この確認のために使われるのが「Expect: 100-continue」という仕組みです。具体的には、クライアントはまず「データ送信の準備をしてください」という意味合いのヘッダをサーバーに送り、サーバーからの「データを受け取る準備ができました(100 Continue)」という返事を待ちます。この仕組みの利点は、もしサーバーが何らかの理由でデータを受け入れない場合(例えば認証エラーやデータサイズの上限超過など)、クライアントが無駄に大量のデータを送信することを防げる点にあります。
このCURLOPT_EXPECT_100_TIMEOUT_MS定数には、クライアントがサーバーからの「100 Continue」応答を待つ最大時間をミリ秒単位で指定します。もし設定された時間内にサーバーから応答がなかった場合、cURLは「Expect: 100-continue」メカニズムを諦め、残りのリクエストボディ(実際のデータ)をサーバーに送信し続けます。これにより、サーバーの応答が遅い場合でも、通信が完全に停止することなく処理を進めることが可能になります。この定数を適切に設定することで、ネットワーク環境やサーバーの負荷に応じた柔軟な通信挙動を制御し、より堅牢で効率的なデータ転送を実現できます。
構文(syntax)
1<?php 2 3$ch = curl_init(); 4curl_setopt($ch, CURLOPT_EXPECT_100_TIMEOUT_MS, 500); 5 6?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
int
CURLOPT_EXPECT_100_TIMEOUT_MS は、100 Continueヘッダーを待機する最大時間をミリ秒単位で指定するための定数です。この定数が返す値は整数型で、タイムアウトまでの時間を表します。