Apache:mod_asisモジュール
技術ドキュメント目次 -> Apache -> mod_asisモジュール本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。
◆ はじめに
mod_asis モジュールを使用することで、静的なコンテンツファイルの中に、
httpのレスポンスヘッダを記述することができるようになります。
コンテンツファイルのはじめのほうの行に書かれたレスポンスヘッダが、
そのまま(as is)クライアントに返されます。
mode_asis モジュールは、
1.3.x 系の apache に標準で組み込まれているので、
httpd.conf の設定を変更するだけで、
使用することができるようになります。
◆ httpd.conf の設定:DSOの場合
拡張子が .asis のファイルが、mod_asis で処理されるファイルであるという定義を行います。
LoadModule asis_module libexec/mod_asis.so AddModule mod_asis.c .... <IfModule mod_mime.c> .... # Uncomment the following line to enable Apache's send-asis HTTP file # feature # AddHandler send-as-is asis .... </IfModule> |
◆ 簡単なサンプル(任意のヘッダの追加)
DocumentRootの直下に、test.asis というファイル名で、次のような内容がかかれているファイルを用意します。
X-Test: testvalue <html> <head> <title>test doc</title> </head> <body> test document. </body> </html> |
出力されるヘッダーを、
telnetコマンドを使用して擬似的なhttpリクエストを発生させ、
動作確認を行うと、、
X-Test: testvalue
というレスポンスヘッダが追加されていることが確認できます。
$ telnet 192.168.1.1 80 Trying 192.168.1.1... Connected to ns. Escape character is '^]'. GET /test.asis HTTP/1.0 HTTP/1.1 200 OK Date: Sat, 13 Apr 2002 18:05:31 GMT Server: Apache/1.3.22 (Unix) mod_perl/1.22 X-Test: testvalue Connection: close Content-Type: text/html <html> <head> <title>test doc</title> </head> <body> test document. </body> </html> Connection closed by foreign host. $ |
◆ リダイレクトを行う asis のサンプル
リダイレクト(レスポンスコードが301 や 302)を行う asisファイルのサンプルは次のようになります。
レスポンス301のサンプルファイル(/test301.asis)
Status: 301 Moved Permanently Location: http://192.168.1.1/aaa/bbb.html Content-type: text/html <HTML> <HEAD> <TITLE>moved</TITLE> </HEAD> <BODY> <A HREF="http://192.168.1.1/aaa/bbb.html">Move to Here.</A> </BODY> </HTML> |
レスポンス302のサンプルファイル(/test302.asis)
Status: 302 Moved Temporarily Location: http://192.168.1.1/aaa/bbb.html Content-type: text/html <HTML> <HEAD> <TITLE>moved</TITLE> </HEAD> <BODY> <A HREF="http://192.168.1.1/aaa/bbb.html">Move to Here.</A> </BODY> </HTML> |
レスポンス301の動作確認
$ telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET /test301.asis HTTP/1.0 HTTP/1.1 301 Moved Permanently Date: Wed, 24 Apr 2002 14:59:17 GMT Server: Apache/1.3.22 (Unix) mod_perl/1.22 Location: http://192.168.1.1/aaa/bbb.html Connection: close Content-Type: text/html <HTML> <HEAD> <TITLE>moved</TITLE> </HEAD> <BODY> <A HREF="http://192.168.1.1/aaa/bbb.html">Move to Here.</A> </BODY> </HTML> Connection closed by foreign host. $ |
レスポンス302の動作確認
$ telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET /test302.asis HTTP/1.0 HTTP/1.1 302 Moved Temporarily Date: Wed, 24 Apr 2002 14:59:05 GMT Server: Apache/1.3.22 (Unix) mod_perl/1.22 Location: http://192.168.1.1/aaa/bbb.html Connection: close Content-Type: text/html <HTML> <HEAD> <TITLE>moved</TITLE> </HEAD> <BODY> <A HREF="http://192.168.1.1/aaa/bbb.html">Move to Here.</A> </BODY> </HTML> Connection closed by foreign host. $ |
◆ その他のレスポンスコードを返すサンプル
その他のレスポンスコードを返す asisファイルのサンプルは下記のようになります。
403: Forbidden
404: Not Found
500: Internal Server Error
確認方法は省略します。
上記同様に telnetコマンドを使用して 80番ポートに接続して、
擬似的なリクエストを発生させればOKです。
レスポンス403 のサンプルファイル
Status: 403 Forbidden <HTML> <HEAD> <TITLE>Forbidden</TITLE> </HEAD> <BODY> Forbidden </BODY> </HTML> |
レスポンス404 のサンプルファイル
Status: 404 Not Found <HTML> <HEAD> <TITLE>Not Found</TITLE> </HEAD> <BODY> Not Found </BODY> </HTML> |
レスポンス500 のサンプルファイル
Status: 500 Internal Server Error <HTML> <HEAD> <TITLE>Internal Server Error</TITLE> </HEAD> <BODY> Internal Server Error </BODY> </HTML> |
■ Apache についての他のドキュメント
- インストール
- htpasswd コマンド
- .htで始まるファイル(ちょっとしたメモ)
- Apache Bench(パフォーマンス測定)
- CGIのnphスクリプト
- ErrorDocument ディレクティブ
- ProxyPass ディレクティブ
- Redirect ディレクティブ
- mod_asisモジュール
- mod_perlモジュール
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS