PEAR::HTTP_Clinetがget()する時の、主にコネクションを確立するまでの大まかなfunctionの流れ。
HTTP_Client#get()
↓
HTTP_Client#_performRequest()
↓
HTTP_Request#sendRequest() ※1
↓ ↓ ※2
↓ Net_Socket#connect() ※3
↓ ↓ ↓
↓ ↓fsockopen()
↓ ↓ ※4
↓ socket_set_blocking() ※5
↓
HTTP_Response#process() ※6
↓
ソケット経由で得たレスポンスを処理していく
(以下省略)
※1 将来的にはHTTP_Request2に切り替える可能性が高いと思われる
※2 URLのスキームがhttpsの場合は、ホスト名は「ssl://ホスト名」に、そうでない場合はIPアドレスに変換される
※3 ちなみにHTTP_Request2の場合、自前のSocketクラス(HTTP_Request2_Adapter_Socket)を使っている
※4 もしこのあたりでNet_Socket#enableCrypto()を使えばSSLのバージョンを指定できるけど、使っていない
※5 stream_set_blocking()のエイリアス。この流れの中ではデフォルト設定のままなので、常にブロッキングを有効にしている
※6 HTTP_Responseクラスは、HTTP_Requestのファイル(Request.php)内で定義されている
0 件のコメント:
コメントを投稿