2

Ubuntu 10.10 (x86) (apt の標準パッケージ) で mod_perl 2、mason、および apache 2.2 を使用しています。サーバーに HTTP リクエストを送信すると、次のようになります。

$ nc localhost 80 < ~/Desktop/test.http
HTTP/1.1 200 OK
Date: Mon, 22 Nov 2010 00:32:02 GMT
Server: Apache/2.2.16 (Ubuntu)
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

38
<html><body>Current IP Address: 127.0.0.1</body></html>

0

私はこれについて少し興味があります。これらの数字 (38 と 0) はどういう意味ですか? ログを調べましたが、意味のあるものは何も表示されず、Google に最適な検索フレーズを見つけられないようです (ドキュメントから明らかな何かが欠落している場合は申し訳ありません)。telnet から同じ結果が得られます (ただし、Firefox ではエラーは発生しないようです)。

これが私のリクエストの内容です(最後の空白を省略しています):

GET /test.html HTTP/1.1
HOST: example.com

と私のスクリプト(test.html):

% my $ip = $r->connection->remote_ip();
<html><body>Current IP Address: <% $ip %></body></html>

前もって感謝します!

4

1 に答える 1

5

数字は、チャンク エンコーディングの境界区切り文字です。Transfer-Encoding(応答で取得したヘッダーの値に注意してください。)

38 は、最初のチャンクに 38(hex) = 56 バイトがあることを示します。0 は、これ以上チャンクがないことを示します。

于 2010-11-22T00:44:28.560 に答える