webサーバ勉強会

16
102-107 Content-Type ののの のののの IP のののの @mikeda

Upload: tomohiro-ikeda

Post on 02-Nov-2014

4 views

Category:

Documents


0 download

DESCRIPTION

http://atnd.org/events/9124

TRANSCRIPT

Page 1: Webサーバ勉強会

102-107Content-Typeの決定&アクセス IPの逆引き

@mikeda

Page 2: Webサーバ勉強会

ざっくり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

Page 3: Webサーバ勉強会

Content-Typeの決定

Page 4: Webサーバ勉強会

概要 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を

 判断するのか?

Page 5: Webサーバ勉強会

拡張子ベース

ファイルの拡張子で判断

102 TypesConfig /etc/mime.types

  →  /etc/mime.types で定義するよ!

Page 6: Webサーバ勉強会

拡張子ベース /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

Page 7: Webサーバ勉強会

拡張子ベース

ちょっといじってみるtext/parityfec txttext/plain asc

動作確認$ curl http://mikeda.biz/test.txt -IHTTP/1.1 200 OK...Content-Type: text/parityfec

Page 8: Webサーバ勉強会

ファイルの中身ベース

ファイルの中身を見て判断

104 <IfModule mod_mime_magic.c>105 MIMEMagicFile conf/magic106 </IfModule>

 → conf/magic で定義するよ!

Page 9: Webサーバ勉強会

ファイルの中身ベース 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 だとわかる!!!

Page 10: Webサーバ勉強会

ファイルの中身ベース

設定かえると# JPEG images0 beshort 0xffd8 image/jpegxxx

Content-Type も変わる$ curl http://mikeda.biz/mikeda.jpgxxx -IHTTP/1.1 200 OK...Content-Type: image/jpegxxx

Page 11: Webサーバ勉強会

わからないときのデフォルト

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

Page 12: Webサーバ勉強会

わからないときのデフォルト

変えてみるDefaultType text/mikeda

変わった$ curl http://mikeda.biz/mikeda -I

HTTP/1.1 200 OK

...

Content-Type: text/mikeda

Page 13: Webサーバ勉強会

アクセス IPの逆引き

Page 14: Webサーバ勉強会

アクセス IPを逆引きするか

107 HostnameLookups Off

→ しない

こんなアクセスログが出る38.99.65.221 - - [01/Nov/2010:03:49:52 +0900] "

GET / HTTP/1.1" 200 …

Page 15: Webサーバ勉強会

アクセス IPを逆引きするか

HostnameLookups On にしてみる

こんなアクセスログが出る38.99.65.221.nativehosting.com - - [01/Nov/2010:

03:50:28 +0900] "GET / HTTP/1.1" 200

REMOTE_HOST 変数も置き換わる パフォーマンスが低下する。  どういうときにやるべき???

Page 16: Webサーバ勉強会

終了