さくらインターネットに頼んでいた逆引きの設定が終わりました。
これで携帯電話にもメールが送れます。
逆引きのPTRレコードはさくらインターネットのサーバーが答えて、正引きは自前のサーバーが答えるって変ですよね。
いっそのこと全部引き受けてくれたらいいのに。。。まあ、逆引きはIPとったときにホスト名(サービス名ではない)にあわせればずっと固定だからいいのかも知れません。
正引きはそれよりはずっと流動的ですもんね。
それにしても、前にこれだけくどくど書いておいて、自分がすることになったら丸投げとは。。。いや、管理コストは抑えないと。
金曜日, 7月 08, 2005
Content-Encoding: gzip
HTTPの話。
前回はchunkedに対応したので、今度はgzipに対応してみます。これで圧縮された転送にも対応できるわけですね。
ソケットから読み込んだデータをバッファにためて、perlioを使って解凍します。
ここで「使いにくいなー」と思う、readコマンド。
最初はソケットから読み込みながら伸張しようと思っていたんですが、なんと!指定するバイト数分読み込むのではなくて、読み込んだ(伸張した)バイト数をカウントするんですね。
これは不便。だって、圧縮されてるデータを展開したら何バイトになるかなんてわからないじゃないですか。なのでなんだか2度手間な感じになってます。
サンプルコード
-------------------------------------------------------------
my $buff = '';
if ( $chunked ) {
while ( <$sock> ) {
warn $_ if $debug;
last if m/^\r\n$/;
s/\r\n//;
s/\s//i;
my $content_length = hex($_) or last;
my $tmp;
read $sock, $tmp, $content_length;
$buff .= $tmp;
}
}
elsif ( $content_length ) {
read $sock, $buff, $content_length;
}
my $content = '';
if ( $gzipped ) {
open FH, '<:gzip', \$buff or die $!;
$content .= $_ while;
close FH or die $!;
}
else {
$content .= $buff;
}
-------------------------------------------------------------
前回はchunkedに対応したので、今度はgzipに対応してみます。これで圧縮された転送にも対応できるわけですね。
ソケットから読み込んだデータをバッファにためて、perlioを使って解凍します。
ここで「使いにくいなー」と思う、readコマンド。
最初はソケットから読み込みながら伸張しようと思っていたんですが、なんと!指定するバイト数分読み込むのではなくて、読み込んだ(伸張した)バイト数をカウントするんですね。
これは不便。だって、圧縮されてるデータを展開したら何バイトになるかなんてわからないじゃないですか。なのでなんだか2度手間な感じになってます。
サンプルコード
-------------------------------------------------------------
my $buff = '';
if ( $chunked ) {
while ( <$sock> ) {
warn $_ if $debug;
last if m/^\r\n$/;
s/\r\n//;
s/\s//i;
my $content_length = hex($_) or last;
my $tmp;
read $sock, $tmp, $content_length;
$buff .= $tmp;
}
}
elsif ( $content_length ) {
read $sock, $buff, $content_length;
}
my $content = '';
if ( $gzipped ) {
open FH, '<:gzip', \$buff or die $!;
$content .= $_ while
close FH or die $!;
}
else {
$content .= $buff;
}
-------------------------------------------------------------
水曜日, 7月 06, 2005
Debian GNU/Linux で exim4 を設定する
気がついたら「Exim4 設定」で上位に表示されるようになってました。
なので申し訳ない気持ちを込めて書いておきます。もちろん、debianでの話です。
そもそも、Debianでは有無を言わせずインストールされてしまうExim。その時になにか設定を選ばされてしまうのですけどね。
じっくり英語を読めば難しいことは書いてないけど、やはり面倒です。しかし、Debianの標準MTAはこのEximです。だからしょうがない。
で、ちょうど僕は受信するドメインを増やしたくなったので再設定しました。
やりかたは、/etc/exim4/update-exim4.conf.conf なんていう名前のファイルに書いてあります。なんでこんな変な名前なんだ。。。下ででてくるコマンドの名前といい、ちょっと趣味悪い?とか思ってしまいます。
設定の仕方は、
1. dpkg-reconfigure exim4-config を実行してインストール時の処理をやり直す
か、
2. このファイルを編集してupdate-exim4.confを実行する
です。
普通に送受信するだけならどちらかのやり方だけで事足りますね。といっても結局同じことしてるんですが。
ユーザー毎の転送なんかは別で設定します。
もっと凝ったことをやりたい場合はちゃんとマニュアル読んで、設定ファイルを変更しましょう。設定とは違うけど、こんな懲り方も参考までに。
あとはaliasなんかも必要にあわせて設定します。これで完成。
なので申し訳ない気持ちを込めて書いておきます。もちろん、debianでの話です。
そもそも、Debianでは有無を言わせずインストールされてしまうExim。その時になにか設定を選ばされてしまうのですけどね。
じっくり英語を読めば難しいことは書いてないけど、やはり面倒です。しかし、Debianの標準MTAはこのEximです。だからしょうがない。
で、ちょうど僕は受信するドメインを増やしたくなったので再設定しました。
やりかたは、/etc/exim4/update-exim4.conf.conf なんていう名前のファイルに書いてあります。なんでこんな変な名前なんだ。。。下ででてくるコマンドの名前といい、ちょっと趣味悪い?とか思ってしまいます。
設定の仕方は、
1. dpkg-reconfigure exim4-config を実行してインストール時の処理をやり直す
か、
2. このファイルを編集してupdate-exim4.confを実行する
です。
普通に送受信するだけならどちらかのやり方だけで事足りますね。といっても結局同じことしてるんですが。
ユーザー毎の転送なんかは別で設定します。
もっと凝ったことをやりたい場合はちゃんとマニュアル読んで、設定ファイルを変更しましょう。設定とは違うけど、こんな懲り方も参考までに。
あとはaliasなんかも必要にあわせて設定します。これで完成。
Live HTTP Headers
Live HTTP Headersです。
FireFoxの拡張機能で、その名の通りHTTPヘッダーを見ることができます。
使い方は簡単で、ツールから選択するだけ。あとは起動以降のHTTPヘッダーを勝手に記録していってくれます。
ヘッダーを覗き見るツールとしては内部プロキシなんかが結構多いのかもしれませんが、ブラウザがFirefoxだけでいいならこれが一番簡単です。
まあ、普通のWebアプリケーションを開発するだけならあまり必要はないですが(せいぜいクッキー見るくらいかな)、HTTPの勉強をしたいかたはどうぞ。
前回のtcpdumpはトランスポート層(Transport Layer)のやりとりを見ることができて、今回はアプリケーション層(Application Layer)を見ることができるわけですね。すてき。
ということは、次はなにを見るのか、、ばればれですね。
FireFoxの拡張機能で、その名の通りHTTPヘッダーを見ることができます。
使い方は簡単で、ツールから選択するだけ。あとは起動以降のHTTPヘッダーを勝手に記録していってくれます。
ヘッダーを覗き見るツールとしては内部プロキシなんかが結構多いのかもしれませんが、ブラウザがFirefoxだけでいいならこれが一番簡単です。
まあ、普通のWebアプリケーションを開発するだけならあまり必要はないですが(せいぜいクッキー見るくらいかな)、HTTPの勉強をしたいかたはどうぞ。
前回のtcpdumpはトランスポート層(Transport Layer)のやりとりを見ることができて、今回はアプリケーション層(Application Layer)を見ることができるわけですね。すてき。
ということは、次はなにを見るのか、、ばればれですね。
登録:
投稿 (Atom)