#家庭内のゲートウェイを #OpenBlockS600 に置き換えたら特定サイトからの画像読み込みが遅くなったのでSquid経由で接続することにしました。ChatonでIFRAME内を表示させるには透過型プロキシにすればいいんでしょうか?>詳しい方
#あれ、他のURLだとport番号つきのURLでも問題ないな。なぜChatonのIFRAME内だけBad Requestなんだろう?
#squidの外側のhttpリクエストをログることはできますか?
#あー多分わかった。HTTP/1.0 でリクエストが来てるんですが、
#Chatonが1.0に対応してません。
#1300667464.885 593 192.168.2.14 TCP_MISS/200 1132 GET http://practical-scheme.net/chaton/gauche/ - DIRECT/66.33.214.68 text/html
1300667465.305 290 192.168.2.14 TCP_MISS/400 216 GET http://practical-scheme.net:9997/? - DIRECT/66.33.214.68 text/plain
1300667469.932 515 192.168.2.14 TCP_MISS/200 1131 GET http://practical-scheme.net/chaton/gauche/ - DIRECT/66.33.214.68 text/html
1300667470.316 147 192.168.2.14 TCP_MISS/304 268 GET http://practical-scheme.net/chaton/gauche/chaton.css - DIRECT/66.33.214.68 -
1300667470.452 279 192.168.2.14 TCP_MISS/304 270 GET http://practical-scheme.net/js/prototype.js - DIRECT/66.33.214.68 -
1300667470.467 294 192.168.2.14 TCP_MISS/304 269 GET http://practical-scheme.net/chaton/gauche/chaton.kklaxj.js - DIRECT/66.33.214.68 -
1300667470.622 147 192.168.2.14 TCP_MISS/304 268 GET - DIRECT/66.33.214.68 -
1300667470.765 291 192.168.2.14 TCP_MISS/400 216 GET http://practical-scheme.net:9997/? - DIRECT/66.33.214.68 text/plain
#squidのログはこんな感じです。
#chaton-viewerのログで400 bad requestが出てるのは、HTTP/1.0でリクエストが来てるやつです。query_string自体はおかしくありません。chaton-viewerがHTTP/1.1じゃないからと蹴っちゃってるだけで。
#1.0に対応するのは難しくないと思うけど、単に仕様を確認するのが面倒でサボってるだけだったりする。
#1.0アクセスになっちゃうのってproxyサーバー側の問題じゃなくてクライアント側の問題なんでしたっけ?
#squidの設定なんじゃないかとも思うんだけど、もしかするとキャッシュ絡みでそうせざるを得ないのかな。proxyが入った場合のキャッシュの問題についてははっきりと理解していない。
#正しいhttp/1.1サーバならhttp/1.0もサポートしなければならないので、通常は問題が出ることはないと思う。これはchatonを1.0対応にせよというお告げかな。
#http://www.squid-cache.org/Intro/ に "Squid is a fully-featured HTTP/1.0 proxy which is almost (but not quite - we're getting there!) HTTP/1.1 compliant." って書いてあるから、今のSquidだとHTTP/1.0で送ってしまうのでは? #chatonに関わる範囲内では1.0でも1.1でも一緒かな。1.0で来たリクエストには1.0で返さないとならないっていうだけで。
#Chaton部屋のスクリプトを1.0対応にしてみました。うまくできてるかどうかわからんけど試してみてください @eyasuyuki
#あ、しまった間違えた。ちょっと待って。
#これでどうかな。Chaton部屋試してみて @eyasuyuki
#IronでもSafariでもBad requestです。キャッシュが残ってるのかなあ。
#ん? Chaton部屋アクセスした? ログに残ってないからキャッシュを見にいっちゃってるのかもよ。
#Gauche部屋にはhttp/1.0でのアクセスが来てる。
#squidのキャッシュが残ってるのかなあ。
#あ、Chaton部屋に1.0のリクエスト来た。エラー出てないからうまくいってるんじゃない?
#Chatonの全部屋をhttp/1.0対応に入れ替えました。試してみて @eyasuyuki
#みえました。まはろ〜
#今更ですが、squid.confでserver_http11をonにすれば、少なくともChatonは見えておりました。
#あわせて、以下気付いたドキュメントの誤字?です。
#diff --git a/doc/corelib.texi b/doc/corelib.texi
index dcd2b48..5746324 100644
--- a/doc/corelib.texi
+++ b/doc/corelib.texi
@@ -13940,13 +13940,13 @@ security risk. Use @code{sys-mkstemp} below if possible.
@c EN
Creates and opens a file that has unique name, and returns two values;
opened port and the created filename. The file is created exclusively,
-avoiding race conditions. @var{tmpname} is used as the prefix
+avoiding race conditions. @var{template} is used as the prefix
of the file. Unlike Unix's mkstemp, you don't need padding characters.
The file is opened for writing, and its permission is set to 600.
@c JP
ユニークな名前を持つファイルを作成してオープンし、オープンされたポートとファイル名の
二つの値を返します。ファイルは排他的に作成されるため、レースコンディションは起こりません。
-@var{tmpname}はファイル名のプレフィックスに使われます。Unixのmkstempと違って、
+@var{template}はファイル名のプレフィックスに使われます。Unixのmkstempと違って、
パディングキャラクタをつける必要はありません。ファイルは書き込み用としてオープンされ、
パーミッションは600にセットされます。
@c COMMON
#直しました。まはろ。