[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:98203] Re: squid のバージョンによる違いについて


とけおと申します。
> こんにちは、廣橋です。
> 
> 現在、クライアント側からサーバ(Apache)へのアクセスに
> プロキシ(squid-2.3.STABLE4)を経由してHTTP通信を行っております。
> しかしながら、squidの古いバージョンは
> HTTP/1.1のプロトコルを通さないということを耳にしました。
> 
> HTTP/1.1を通さない条件で、通信のテストを行いたいのですが、
> どのバージョンからHTTP/1.1対応になったかわかりません。
私もHTTP1.1の執拗コネクションに目をつけhttpトンネリングを行おうと
実験してましたが、
いくらクライアント、サーバがHTTP/1.1と言ってもHTTP/1.0に変って断念しました。

クライアント(IEの場合)のデホルトproxy接続設定はHTTP/1.0になってます
これはsakumaさんの投稿に有るように設定変更できます。
がSquid側で
・クライアントからのリクエストはHTTP/1.0に
・サーバからのレスポンスはHTTP/1.0に
書き換えられ、持続接続もされません。

で実の所Squidでどうやれば良いのかSquid2.5STABLE1のconfを
HTTP/1.1なる記述のあるかな?と思われるタグを片っ端からONにしてみましたが、ダメでした。
httpd_accel_uses_host_header on
vary_ignore_expire on

でvary_ignore_expireタグのコメントに
[This option enables Squid to ignore such expiry times until HTTP/1.1 is fully implemented.]
「HTTP/1.1が完全にインプリメントされるまで、スキッドはこのオプションによってそのような
終了回を無視することができます。(翻訳By excite)」
とあるのでどこまでインプリメントされているのでしょう。。

参考までに以下はSquid 2.5 STABLE1 を使ったHTTP/1.1透過実験結果です。
クライアント側:
$ telnet localhost 8080 <---Squidのリクエストポートを8080にしてある
Trying 127.0.0.1...
Connected to exc1812.
Escape character is '^]'.
GET http://127.0.0.1:22222/ HTTP/1.1  <--1.1を指定
Pragma: test

HTTP/1.0 200 OK  <---サーバは1.1で返したが1.0で返る
Content-Length: 100
X-Cache: MISS from nabe.proxy
Proxy-Connection: close

<100byteのデータ表示>
Connection closed by foreign host.

webサーバ側:(サーバ擬似としてターミナルサーバを22222番ポートで待ち受け起動)
GET / HTTP/1.0    <---1.1で要求したが1.0になっている
Pragma: test
Via: 1.0 nabe.proxy:8080 (squid/2.5.STABLE1)
X-Forwarded-For: 127.0.0.1
Host: 127.0.0.1:22222
Cache-Control: max-age=259200
Connection: keep-alive

HTTP/1.1 200 OK    <---1.1で返す
Content-Length: 100

<100byteのデータを打ち込む >

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: