Skip to content

Instantly share code, notes, and snippets.

@tokunami
Last active August 29, 2015 14:03
Show Gist options
  • Save tokunami/345b3de48a0f39622383 to your computer and use it in GitHub Desktop.
Save tokunami/345b3de48a0f39622383 to your computer and use it in GitHub Desktop.
  • http…HTTPの各種機能をまとめたライブラリ
var server = http.createServer();
  • createServerメソッドでhttp.Serverオブジェクトを作成
  • http.Serverはクラスで、次のイベントを持つEvent Emitter
Event 関数                
request function (request, response){} リクエストの度に生成
connection function (socket) { }         新しいTCPストリームが確立したとき(通常使わない?)
close function (){}    サーバがクローズしたとき
checkContinue function (request, response) { }    httpの Expect: 100-continue リクエストを受信する度に生成
connect function (request, socket, head) { } クライアントが HTTP の CONNECT メソッドを要求する度に生成
upgrade function (request, socket, head) { } クライアントが HTTP のアップグレードを要求する度に生成
clientError function (exception, socket) { } クライアントコネクションが 'error' イベントを発したとき
function(request, response){}
  • 第1引数requestオブジェクトはhttp.IncomingMessageのインスタンスで、クライアントからのリクエストに関する機能がまとめられている
  • 第2引数responseオブジェクトはhttp.ServerResponseのインスタンスで、サーバーからクライアントへ戻されるレスポンスに関する機能がまとめられている
イベント処理の組み込み方
server.on('request', doRequest);
  • onメソッド(指定のイベント処理を組み込むためのもの)で、第1引数にイベント名を、第2引数に組み込む処理(関数)をそれぞれ指定

  • ここではrequestイベントにdoRequestという関数を割り当てている

  • クライアントがサーバーにアクセスしたときにrequestイベントが発生し、関数doRequestが呼ばれる

  • socket.IOと同じ感覚

    とりあえずここまで

  • 参考サイト http://nodejs.jp/nodejs.org_ja/api/http.html#http_http

@stoshiya
Copy link

httpモジュールに関しては「サーバサイドJavaScript Node.js入門」のHTTPの章を読んでみましょう.APIリファレンスには少ししか記載されていないことも書いてあるので,新たな発見があると思います.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment