0

FastCGI サーバーから情報を読み取る非常に単純なプログラムを作成しました。ファイル記述子 0 のソケットを受け入れ、サーバーから受信したすべてのデータをraw.binary (1KB)に「pukes」します。926 バイトを受け取りましたが、バッファーのサイズが 1014 であるため、ファイルの長さは 1014 です。

このFastCGI 仕様を使用して手動でデータを分析しようとしましたが、データが仕様と一致していないようです。

最初の 2 バイトは両方とも 1 です。これは、プロトコル バージョン 1、タイプ 1 を意味します (これは、要求の開始を表します。)

次の 2 バイトは、1 を含む int16 を構成します。これは要求 ID であり、1 は最初の要求であるため、これも予想どおりです。

ただし、次の 2 バイト (16 進数)00 08は、コンテンツの長さが 8 であることを教えてくれます...これは不可能ですが、バイナリをダウンロードした場合にわかるように、この 8 値の範囲内にさえないコンテンツがたくさんあります。ちんぷんかんぷん。

私は何を間違っていますか?

4

1 に答える 1

0

サーバーは 2 つのレコードを送信しました。最初のレコードの長さは実際には 8 バイトです。

于 2013-11-18T18:16:32.793 に答える