PHP プログラマーとして、必ず http プロトコルに触れることがあり、http プロトコルを深く理解することによってのみ、プログラミング レベルを向上させることができます。最近、PHP での HTTP プログラミングについて学習しており、多くのことが突然明らかになり、多くの恩恵を受けました。皆さんと共有できれば幸いです。この記事は、特定の http 基盤を持つ開発者が読む必要があります。
今日紹介するのは、ソケットを使用して GET リクエストと POST リクエストを送信する方法です。 Yan Shiba 教師によってカプセル化された Http クラスを使用して説明します。
日常のプログラミングでは、私と同じように、ほとんどの場合ブラウザを使用してサーバーにGETおよびPOSTリクエストを行うことが多いと思いますが、他の方法を使用してGETおよびPOSTリクエストを行うことはできますか?答えは「はい」でなければなりません。 HTTP プロトコルを知っている人なら誰でも、ブラウザがリクエストを送信する本質は、リクエスト情報をサーバーに送信することであることを知っています。このリクエスト情報は、リクエスト行、リクエスト ヘッダー、およびリクエスト本文 (オプション) で構成されます。サーバーはリクエスト情報に基づいてレスポンス情報を返します。接続を解除します。
HTTP リクエストの形式は次のとおりです:
リーリー
HTTP レスポンスの形式はリクエストの形式と非常に似ています:
リーリーHTTP の原理を利用してリクエストを送信することができ、ソケットを使用して HTTP リクエストを送信することを再考することもできます。
Socketの本来の英語の意味は「穴」または「ソケット」です。一般に「ソケット」とも呼ばれ、IP アドレスとポートを記述するために使用され、通信チェーンへのハンドルであり、異なる仮想マシンまたは異なるコンピューター間の通信を実装するために使用できます。インターネット上のホストは通常、複数のサービス ソフトウェアを実行し、複数のサービスを同時に提供します。各サービスはソケットを開き、異なるポートに異なるサービスに対応します。この観点から見ると、ソケットを使用してリモート ファイルを操作することは、ローカル ファイルを読み書きするのと同じくらい簡単です。ローカル ファイルはハードウェアを介して送信され、リモート ファイルはネットワーク ケーブルを介して送信されると考えてください。
したがって、リクエストの送信は、接続の確立 -> ソケット インターフェイスを開く (fsockopen()) -> リクエストの書き込み (fwrite()) -> レスポンスの読み取り (fread() -> Close) と考えることができます。ファイル ( fclose()) では、さっそくコードに進みましょう:
リーリー
このクラスを使用して、単純な GET リクエストを送信します。
リーリー戻り値は情報であり、応答情報をさらに加工して欲しい内容を取得することができます。