webサーバ勉強会
DESCRIPTION
http://atnd.org/events/9124TRANSCRIPT
102-107Content-Typeの決定&アクセス IPの逆引き
@mikeda
ざっくり2つ
Content-Type の決定102 TypesConfig /etc/mime.types
103 DefaultType text/plain
104 <IfModule mod_mime_magic.c>
105 MIMEMagicFile conf/magic
106 </IfModule>
DNS の逆引き107 HostnameLookups Off
Content-Typeの決定
概要 Apache は返却するファイルの種類( MIME タイプ)を
Content-Type ヘッダで返していて、 クライアントはそれを元に適切な処理を行う。
$ curl http://mikeda.biz/test.txt -IHTTP/1.1 200 OK...Content-Type: text/plain; charset=UTF-8
Apache はどのようにして Content-Typeを
判断するのか?
拡張子ベース
ファイルの拡張子で判断
102 TypesConfig /etc/mime.types
→ /etc/mime.types で定義するよ!
拡張子ベース /etc/mime.types フォーマット → <MIME タイプ > < 拡
張子 >image/jpeg jpeg jpg jpetext/plain asc txt
動作確認$ curl http://mikeda.biz/test.txt -IHTTP/1.1 200 OK...Content-Type: text/plain; charset=UTF-8
拡張子ベース
ちょっといじってみるtext/parityfec txttext/plain asc
動作確認$ curl http://mikeda.biz/test.txt -IHTTP/1.1 200 OK...Content-Type: text/parityfec
ファイルの中身ベース
ファイルの中身を見て判断
104 <IfModule mod_mime_magic.c>105 MIMEMagicFile conf/magic106 </IfModule>
→ conf/magic で定義するよ!
ファイルの中身ベース conf/magic →http://httpd.apache.org/docs/2.0/mod/mod_mime_magic.html
# JPEG images0 beshort 0xffd8 image/jpegファイルの先頭がビッグエンディアンの "0xffd8" なら jpeg
動作確認# mv mikeda.jpg mikeda.jpgxxx
$ curl http://mikeda.biz/mikeda.jpgxxx -IHTTP/1.1 200 OK...Content-Type: image/jpeg
→ 拡張子を変えても jpeg だとわかる!!!
ファイルの中身ベース
設定かえると# JPEG images0 beshort 0xffd8 image/jpegxxx
Content-Type も変わる$ curl http://mikeda.biz/mikeda.jpgxxx -IHTTP/1.1 200 OK...Content-Type: image/jpegxxx
わからないときのデフォルト
103 DefaultType text/plain → よくわからなければ text/plain 返す
よ!!
動作確認# echo mikeda > mikeda
$ curl http://mikeda.biz/mikeda -IHTTP/1.1 200 OK...Content-Type: text/plain; charset=UTF-8
わからないときのデフォルト
変えてみるDefaultType text/mikeda
変わった$ curl http://mikeda.biz/mikeda -I
HTTP/1.1 200 OK
...
Content-Type: text/mikeda
アクセス IPの逆引き
アクセス IPを逆引きするか
107 HostnameLookups Off
→ しない
こんなアクセスログが出る38.99.65.221 - - [01/Nov/2010:03:49:52 +0900] "
GET / HTTP/1.1" 200 …
アクセス IPを逆引きするか
HostnameLookups On にしてみる
こんなアクセスログが出る38.99.65.221.nativehosting.com - - [01/Nov/2010:
03:50:28 +0900] "GET / HTTP/1.1" 200
REMOTE_HOST 変数も置き換わる パフォーマンスが低下する。 どういうときにやるべき???
終了