0

奇妙な問題があります。ローカル ネットワークのモデムに組み込まれた Web サーバーに HTTP GET 要求を送信しています (組み込み Web サーバーは、モデムの「コントロール パネル」へのインターフェイスです)。デスクトップ マシンまたは電話からリクエストが送信されると、サーバーは HTTP/1.0 レスポンスで応答します。ただし、ラップトップからリクエストを送信すると、サーバーは HTTP/0.9 で応答します。問題は、組み込み Web サーバーの HTTP/0.9 の実装にバグがあり、応答ヘッダーが壊れているため、クライアントが応答を理解できないことです (ヘッダーは応答本文の一部です)。この動作は、リクエストの送信に使用されたクライアントに関係なく発生します。それで、私の質問は次のとおりです。組み込み Web サーバーが別の HTTP バージョンで応答する原因は何ですか?

詳細は次のとおりです。

  • モデム: HughesNet HN7000S
  • 組み込み Web サーバー: WindWeb/1.0
  • デスクトップOS: Vista 64 Home Premium/SP2
  • 電話 OS: アンドロイド 2.3.4
  • ラップトップ OS: Win7 Home Premium/SP1
  • デスクトップ クライアント: FireFox v13.0.1、IE8、および perl コマンドライン クライアント (標準の LWP および HTTP perl モジュールで実装)
  • 電話クライアント: FireFox v14.0 およびストック Android ブラウザ
  • ラップトップ クライアント: Firefox v13.0.1、IE9、およびデスクトップと同じ perl コマンドライン クライアント
  • モデムへのデスクトップ接続: モデムへのイーサネット直接接続、ワイヤレス ルーター経由のイーサネット接続 モデムへの電話接続: ワイヤレス経由
  • モデムへのラップトップ接続: モデムへのイーサネット ダイレクト、ワイヤレス ルーター経由のイーサネット、ワイヤレス

[注: 自宅では携帯電話の電波が届かないため、データ接続で電話を試すことはできません]

デスクトップとラップトップの IP アドレスを強制的に同じにすることを試みました (明らかに、プロセスでどちらか一方を切断します)。組み込み Web サーバーが着信要求の IP アドレスをキーオフして、どのバージョンの応答する HTTP。

もちろん、HughesNet の技術サポートはまったく役に立ちませんでした。WindWeb 組み込み Web サーバーに関するドキュメントを Web で探してみましたが、何も見つかりませんでした。

ラップトップは、他のWebサーバーから「合理的な」応答を返すことに問題はありません...したがって、問題はモデムに組み込まれたWebサーバーにあると思います。しかし、バグのある HTTP/0.9 応答で応答する組み込み Web サーバーは、要求がラップトップから送信された場合にのみ発生するようであり、要求がラップトップから送信されたクライアントに関係なく発生するため、問題には何か関係があると考えなければなりません。ラップトップでいくつかのネットワーク設定を使用していますが、組み込みサーバーが応答する HTTP のバージョンにどの設定が影響するか想像できません。

誰でも助けてもらえますか?直接的な解決策、またはチェックする必要のある他のものを使用しますか? 3 台のマシン、それらの接続、または問題の診断に役立つその他の情報はありますか?

4

1 に答える 1

0

ほとんどのクライアントは、のように自分自身を識別するためにクライアント文字列を送信しますMozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20120602 Iceweasel/3.5.16 (like Firefox/3.5.16)。これは、一部の壊れたサーバーがコンテンツを適応させるために使用します。たとえば、私の大学のファイルサーバーでは-U ""、空のクライアント文字列を送信しないようにwgetを呼び出しない限り、wgetを使用していくつかのcssファイルをダウンロードできませんでした(これは陽気です)。

于 2012-07-11T22:09:48.227 に答える