抜きん出て日記これは私が日常感じたことを書く日記です。将来成長してこの日記を読み返して、この時期はこんなことをしてたのか、と人生振り返るためのものにする予定。〜SetCookie発行〜モジュールでSetCookieを発行する方法を載せます。"クッキー設定のための文字列");これで正常レスポンスを返す場合に、クッキー設定のための文字列を使ってSetCookieを発行します。ちなみに、エラーレスポンスを返す時は、これじゃSetCookieされません。"クッキー設定のための文字列");これでエラーの場合にSetCookieを発行できます。クッキー設定のための文字列って何ですか?まず、SetCookieの根本的な使い方を知る必要があります。23:59:59;上の赤い部分の文字列を、apr_table_setの第三引数に渡すとApacheが、このtableを読み込んで発行してくれます。〜REDIRECT〜apacheのモジュール内でリダイレクトの処理を載せますねー。REDIRECT;これで第三引数のURIに移動できるっつーわけです。key=valueの形式で値を保持しておくものです。レスポンスのHTTPヘッダーを司る場所(r->headers_out)の、URIを指定するためのkey値(location)に対するvalueに、"Login.html"とセットしています。レスポンスを作るときにこの値を見て生成しているので無事にRedirectされるんじゃなかろうか。何かincludeする必要があるのかな・・・。〜SetHandler〜Httpd.confに記述する<Location></Locatin>や<Directory></Directory>の間に書くSetHandlerの意味がやっとわかった。testって何気なく書いてた部分は、test.cの名前から来てるんじゃなくて自分で勝手に決めれる名前だった。いうことかっていうと、http://localhost/test/にアクセスした時に、自分で勝手に決めたHandlerが処理される記述になる。DECLINED;}上のような記述があって、このモジュールを処理するHandlerを決めてるんだわ。このif文が無くなると、どんなHandlerでも処理しちゃうのよ。いうか、Handlerがなくても処理しちゃうわ。具体的にいうと、http://localhost/これ以降適当な文字にアクセスしても、このモジュールが処理されちゃう。--APRやAPIは全部網羅してるわけじゃないので、かつ、正しいかもわからないので注意。hello_cfg;この初期化関数を、上にあるモジュール定義の、「ディレクトリ毎の設定の初期化」に書く。NULL;}これも、上にあるモジュール定義の、「設定値のリスト」に書く。&usertrack_module);2つ目の引数のモジュールの設定を、configから読み込む。ひな形解説〜開発日記2で作ったひな形を解説っていうか頭の中を整理するために、文字に起こそうと思います。};参考ページにも書いてある通り、test_handler()関数は、クライアントからのリクエストの処理に対する、レスポンスを生成する関数です。*rは、HTTPリクエストを表現した構造体です。include/httpd.hで定義されています。この構造体のまとめはそのうち書きますね。具体的に、レスポンスを生成しているのは15行目です。ap_rputs("文字列",リクエストポインタ);で、このリクエストポインタが扱っている、リクエストに対するレスポンスのデータを「文字列」にしている訳です。実際に、http://localhost/test/を表示すると「文字列」と表示されます。この「文字列」に、htmlタグを打っていくことによって、様々なページが作られるわけですね。ちなみに、ap_aputs()関数は、Apacheが提供しているAPIですね。そのうちAPIについてもまとめます。文字)関数は、文字列比較関数で2つの文字が一緒だったら「0」を返して、違ったら「0以外」を返す関数です。して扱われるので上で説明した意味になります。次の14行目のifは、クライアントからのリクエストヘッダーが、HEADのものは、処理をしない。HEADリクエストの意味は「レスポンスのヘッダ部分だけ寄こせ」という意味で「文字列」を表示する部分は、ヘッダの下の、データ部分に持たせます。このHEADリクエストに対するレスポンスに「文字列」なんて追加した日にはもう夜も眠れないですね。if(!r->header_only)で弾いてるわけです。いいけど、HEADリクエストに、データ部分突っ込んで渡したらどうなるんでしょうね。OKは処理成功って意味です。DECLINEとかOKはApacheが決めてる定数っぽいので何も考えないでそれreturnしてればいいと思う。その定数をincludeでもしてるのかね?それで、どのURLにアクセスしたら、このtestが処理されるのか?っていうのは設定ファイルがあって、そこに設定すると初めて処理されることになります。適当なところに追加します。test</Location>これでhttp://localhost/hoge/にアクセスするとtestモジュールが起動されるわけっすね。これでメインの文字表示の説明が終わったんで、あとの関数はさらっと説明で終わりますね。詳しい説明も、そのうち。test_register_hooks関数()についてはApacheの起動時に読み込まれて、このtest_handler()を処理するタイミングをいつにするかを決める関数です。test_moduleについては、このモジュールの初期設定やらフックする関数やらを決めてる構造体です。この構造体がApache本体に読み込まれて、どうのこうのされるんですねー。エディター使いにくいんだけど。〜form認証開発するよ!〜勉強の一環として、フォーム認証を自分の力で開発するよ!大雑把なアルゴリズムを書きます。1.Webリクエストをうけたら、認証フォームを表示する2.ユーザID,PASSWORDを受け取って、ユーザー認証する3.正しければコンテンツレスポンス送信ちょーおーざっぱ。ちなみに、MOJULE.JPの小山浩之さんが既に開発してるのでそれを参考にします。再コンパイル〜開発日記2で作ったtest.cを変更して再コンパイル方法。/usr/local/apache2/3rdparty/test/mod_test.la-aオプション抜かしただけー。