2009-08-25 10 views
1

私は3G UMTS接続を使用しています。私はクライアントのファイアウォールをバイパスするためにポート80でリッスンする私のサーバ へのHTTPトンネリングを実装しようとしています。問題は、ISPのプロキシサーバーが、持続的なHTTP接続をサポートしていないHTTP/1.0をサポートしていることです。HTTP/1.0を使用した永続HTTPは可能ですか?

結果として、クライアント/サーバ間の1つのhttp要求/応答反復の後に、ISPのプロキシが基礎となるTCP接続を破棄します。

私のクライアントは、次のHTTPレスポンスを受信します。

HTTP/1.0 200 OK 
Content-Type: application/octet-stream 
Content-Length: yyy 
X-Cache: MISS from ipmr5 
Proxy-Connection: close 
Content data 

私のサーバーは、実際に送信している間:任意の回避策は

HTTP/1.1 200 OK 
Connection: Keep-Alive 
Content-Type: application/octet-stream 
Content-Length: yyy 
Content data 

ありますか?

+0

GNU httptunnelで期限切れになったことはありませんでした。イーサネット経由でサーバーに接続するとうまく動作します。私は3G UMTS経由でサーバーに接続しようとしているときはまったく動作しません。サーバーは何も受け取らない – mrvincenzo

答えて

3

いつでもHTTPSを使用できます。プロキシが提供するメリット(キャッシュなど)は失われますが、すべてのHTTPヘッダーは、送信したとおりにサーバーに到着します。

+0

私は、ポート80(ポート443がブロックされている)に送信されたHTTPSトラフィックは、とにかくISPのプロキシを通過すると思います。私は、プロキシが非HTTPトラフィックを通過させるかどうかはわかりません。 – mrvincenzo

+0

私はこれをうまく使いました(私のネットワークオペレータプロキシは、クライアントが処理できなかったすべてのレスポンスを圧縮しました)。私の場合、ポート443はブロックされませんでした... – user86614

1

HTTP 1.0プロキシ(ISPが使用すると思われる)をConnection:接続との関連で使用しないでください。この理由は、RFC-2068(セクション19.7.1)に概説されています。短いバージョンは、基本的には、使用しているプロキシの種類のためにサーバーが無効なヘッダーを送信しているということです。

+0

私はISPのプロキシを使用することを選択しなかった、ISPは私のために選んだ。 – mrvincenzo

+0

あなたのクライアントがサーバにリクエストを送信すると、プロキシはそれをhttp1.0にダウングレードしています(そうでなければなりません)。その場合、サーバはhttp1.1 – meandmycode

+0

meandmycodeで応答しないでください:私のサーバがhttp/1.0で応答したとします。それでも、プロキシは "Proxy-Connection:close"を送信し、永続的なhttpをサポートしていないため、基になるソケットを破棄します。 – mrvincenzo

関連する問題