ホームページ  >  記事  >  バックエンド開発  >  PHP の Curl ライブラリと HTTP リクエスト テクノロジ

PHP の Curl ライブラリと HTTP リクエスト テクノロジ

WBOY
WBOYオリジナル
2023-05-11 16:42:251479ブラウズ

インターネットの普及と発展、Web サイトの数と複雑さの増加に伴い、ネットワーク指向のアプリケーションの開発がますます注目を集めています。この過程において、HTTP リクエスト技術と Curl ライブラリは開発者が習得しなければならない重要な技術となっています。この記事では、PHP の Curl ライブラリと HTTP リクエスト テクノロジの基礎知識、アプリケーション シナリオ、使用法を紹介します。

1. HTTP リクエスト テクノロジ

1.1 HTTP プロトコル

ハイパーテキスト転送プロトコル (HTTP) は、ハイパーテキスト データ (HTML など) を送信するために使用されるプロトコルです。 HTTP はクライアント/サーバー プロトコルであり、クライアントは HTTP 要求を通じてサーバーからリソースを取得し、サーバーは HTTP 応答を通じて要求されたデータを返します。 HTTP プロトコルは TCP/IP プロトコルに基づいて構築されており、TCP プロトコルを使用して信頼性の高い伝送サービスを提供します。

1.2 HTTP リクエスト メソッド

HTTP は、クライアントがサーバーに実行してほしい操作を指定するためのメソッドをいくつか定義します。一般的に使用される HTTP リクエスト メソッドは次のとおりです:

  • GET: 指定されたリソースをサーバーから取得します;
  • POST: 指定されたサーバー リソースにデータを送信します;
  • PUT:リクエストの送信 データは指定したサーバーリソースに保存されます;
  • DELETE: サーバーに指定したリソースの削除を要求します;
  • HEAD: 指定したリソースのヘッダー情報を取得します;
  • オプション: サーバーのサポートを取得する HTTP リクエストのメソッドとヘッダー情報。

1.3 HTTP リクエスト ヘッダー

HTTP リクエスト ヘッダーには、クライアントからサーバーに送信されるリクエスト情報が含まれます。この情報は、サーバーにリクエストとレスポンスの解釈方法を指示するために使用されます。一般的に使用される HTTP リクエスト ヘッダーは次のとおりです:

  • User-Agent: クライアント タイプを指定します;
  • Content-Type: 要求されたデータの MIME タイプを指定します;
  • Accept : クライアントが受け入れる MIME タイプを指定します;
  • Authorization: クライアントによって提供された認証情報を指定します;
  • Referer: クライアントのリンク元の URL を指定します;
  • Cookie: クライアントのCookie情報を指定します。

1.4 HTTP 応答

HTTP 応答は、サーバーからクライアントに返される応答情報であり、通常はステータス コードと対応するテキスト情報が含まれます。 HTTP ステータス コードは、リクエストの処理結果を示すために使用されます。一般的に使用される HTTP ステータス コードは次のとおりです:

  • 200 OK: リクエストは成功しました;
  • 301 Moved Permanently: リクエストされたリソース新しい URL に移動されました;
  • 404 Not Found: 指定されたリソースが見つかりませんでした;
  • 500 Internal Server Error: サーバーに内部エラーが発生しました。

2. PHP の Curl ライブラリ

2.1 Curl ライブラリの概要

Curl は、HTTP、HTTPS、FTP などのさまざまなプロトコルをサポートする優れたオープン ソース ライブラリです。 、SMTPなどこれにより、開発者はファイルのアップロードとダウンロード、および HTTP リクエストの送信をシンプルかつ統一された方法で行うことができます。 PHP では、Curl を使用して、リモート サーバーへのアクセス、ファイルのアップロードとダウンロードの処理、ネットワーク コンテンツの取得などを行うことができます。

2.2 PHP での Curl の使用

Curl を使用して HTTP リクエストを行う基本的な形式は次のとおりです:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);

上記のコードは、Curl を使用する基本プロセスを示しています。最初のステップは、Curl ハンドルを初期化し、適切なオプションを設定することです。このうち、CURLOPT_URL はアクセスする URL を設定するために使用され、CURLOPT_RETURNTRANSFER はデータを文字列形式で返すかどうかを設定するために使用されます (通常は 1 に設定されます)。次に、curl_exec() を使用してリクエストの応答結果を取得し、curl_close() を使用して Curl ハンドルを解放します。

  1. アプリケーション ケース

3.1 リモート インターフェイス データの取得

Curl を使用してリモート インターフェイス データを取得できます。以下はサンプル コード スニペットです:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.example.com/products?search=foo",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Token abcdefghijklmnopqrstuvwxyz",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

上記のコードは、HTTP GET リクエストを https://api.example.com/products?search=foo インターフェイスに送信し、返された結果を $ に保存します。応答変数は中央です。

3.2 ファイルのアップロード

Curl を使用してファイルをアップロードすることもできます。以下はサンプル コード スニペットです:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/upload.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            array('file' => '@/path/to/file', 'file_name' => 'new_file_name'));

$result = curl_exec($ch);
curl_close($ch);

上記のコードは、/path/to/file ファイルを POST モードで http://example.com/upload.php にアップロードし、ファイルを new_file_name として保存します。 。

4. 概要

この記事では、PHP での HTTP リクエスト テクノロジと Curl ライブラリのアプリケーションを紹介します。 HTTP リクエスト テクノロジは、クライアント/サーバー プロトコルとして、インターネット アプリケーションの開発にとって重要です。 Curl ライブラリは、リモート サーバーにアクセスし、ファイルのアップロードとダウンロードを処理し、ネットワーク コンテンツを取得するためのシンプルで統一された方法を開発者に提供します。 Curl を使用するプロセスは比較的単純で、開発者は実際のニーズに応じて関連パラメータを柔軟に構成できます。将来の開発では、開発者は Curl ライブラリの API を深く学習し、より高度な機能を徐々に習得できます。

以上がPHP の Curl ライブラリと HTTP リクエスト テクノロジの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。