このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

MacHTTP2.3でのDate:ヘッダについて

発言者:テッペイ
( Date Monday, April 02, 2001 22:35:01 )


はじめまして、みなさん。

現在、フレッツISDNとDynamicDNSサービスでサーバーを立てています。
そのうちwebサーバーをMacHTTP2.3にしてみたのですが、どうやら
Date:ヘッダやLast-Modified:ヘッダがおかしな時刻を返している様です。
アンテナを運営されている方に指摘されて気付きました。

マシンの時刻はネットワークを使ってあわせていますし、他のMailやFTP
のサーバーでは時刻は正確です。

URLはhttp://kemono.mine.nu/です。

お心当たり等ございましたら、コメントいただきたいと思います。
よろしくお願いします。

#すごく古い発言でWebSTRAが似たような動作をしていると言ったような
#ものがありましたが、コメントも無く、解決を見なかった様です(^^;


→  WebSTAR 2.0 の Date ヘッダーのバグ?

田中求之 さんからのコメント
( Monday, April 02, 2001 23:14:54 )

今調べてみたら、

>Date: Mon, 02 Apr 2001 23:07:12 GMT

というヘッダを返しました。つまり、GMT と言いながら時間自体はローカル
の時間(サーバ上の時間)を返してきていますね(GMT への変換が行われて
いない)。

このため、Last Modified のリクエスト(Conditonal_Get)の処理もおかしく
なっているのだと思います。

…そういや、MacHTTP は、Conditional_Get には対応していないんではなかった
かな?

ま、いずれにせよ、Date ヘッダにはバグがありますね。

Web 共有を使われた方が良いかもしれません。

テッペイ さんからのコメント
( Monday, April 02, 2001 23:23:55 )

ありがとうございます。

>ま、いずれにせよ、Date ヘッダにはバグがありますね。
>
>Web 共有を使われた方が良いかもしれません。

うーん。Centris660AV/KT7.5.5/なのでweb共有は無理ですね。
QPQですかねぇ。でもせっかくですから、MacHTTPのコミュニティ
に報告してみようかと思います。

重松修 さんからのコメント
( Tuesday, April 03, 2001 09:59:35 )

とりあえず、バグを修正してもらえるまで待てないならば、
単に自分のいる位置をロンドンにでもすれば良いのではないですか?
そうすれば、時差がそもそも発生しないはずですので。

おそらく、MacHTTP のプログラマの方ならば、すぐに時差の計算方法などは、
わかると思いますが、ReadLocation() という API を用いて、
時差を読み込まなければなりません。この時、day light savings delta
はあらかじめ補正されているので、単に下位 3 ビットを符合拡張すれば、
GMT からの秒単位での時差が取得できる仕組みとなっています。
MacOS 9 以降では、専用の API ができたんですが、68K をサポートする
のならば、当然使えないですね。;-)

今手元に Macintosh がないので具体的なコードを示せないのですが、
以前 mac-pro-ML (素人プログラマの会メイルリスト) で、
時差計算の方法についてやり取りを行いましたので、過去ログを探せば
具体的なコードが見つかると思います。

また、day time savings delta の詳細について、今更という感は
拭い去れませんが、Apple が技術文書で明確にしたという記事が
MacWire に載っていましたので、調べてみると良いかもしれません。

MacHTTP はたしか、CVS で取り寄せられると思いますので、
以上の情報で自分でパッチを作り、コミットできる人にお願いする、
メイルリストにレポートするというのが、
正しいオープンソースなやり方と思います。
# オープンソース、ですよね?

重松修 さんからのコメント
( Tuesday, April 03, 2001 10:45:08 )

Typo に気づきました。

> 単に下位 3 ビットを符合拡張すれば、

単に下位 3 バイトを符号拡張すれば、ですね、正しくは。

Apple のサンプルコーナーにもそのものズバリがありました。



→  GMT との時差を計算するサンプル (Apple)

テッペイ さんからのコメント
( Wednesday, April 04, 2001 01:37:17 )

重松さん、大変丁寧なコメントを有り難うございます。

ただ、アドバイスいただいた通りに動くのは私には難しすぎです。
すいません。(^^;

とりあえずはアンテナ側が対応してくれたので、大丈夫になりました。
でもなんとか、コミュニティへのバグ報告だけはしたいと思います。

有り難うございました。