たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

Node.js HTTPモジュールでrequestを投げる

Node.jsのHTTPモジュールはHTTPに関わるクラス・メソッドを定義している.
HTTPはサーバーとクライアント側に仕事が二分されるが、今回はそのクライアント側について.

リクエストの送信

requestの設定〜送信完了

HTTP.request(options, response_handler) #
HTTPメソッド、送信先URL、ヘッダなどをoptionsで設定.
request()は http.ClientRequest class を返し、この時点ではまだrequest送信が完了していない (始まってはいるのか…?)
ClientRequest.end() でrequestが完了.
bodyを設定する際は end()の前に ClientRequest.write(body) か end(body)

responseの処理

request(options, response_handler) の第二引数で処理を登録.
response_handler(res)は http.IncomingMessage classであるresponseを第一引数として実行される.

responseのイベント

レスポンスは1度に塊として来るのではなく、小分けされて順次来るみたい.
なのでresponse (http.IncomingMessage class) はReadable Streamを実装してる.
トリガーになるイベントは

  • response Event: headerを受け取った時
  • data Event: Readable StreamのEvent,
  • end Event: Readable StreamのEvent,

responseのよく使うプロパティは

  • message.headers
  • message.statusCode
    *message.statusMessage