我有一个简单的 CGI 脚本,可以输出简单的文本内容。它是用 Perl 编写的,使用CGI
模块,它只指定了最基本的头文件:
print $q->header(
-type => 'text/plain',
-Content_length => $length,
);
print $stuff;
Run Code Online (Sandbox Code Playgroud)
功能没有明显问题——用户代理和服务器都没有抱怨,但我对 Wireshark 无法将 HTTP 响应识别为 HTTP 的事实感到困惑——它被标记为 TCP。
这里是请求和响应,如“Follow TCP Stream”对话框所示:
GET /cgi-bin/memfile/memfile.pl?mbytes=1 HTTP/1.1
Host: 10.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: cs,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.1 200 OK
Date: Thu, 05 Apr 2012 18:52:23 GMT
Server: Apache/2.2.15 (Win32) mod_ssl/2.2.15 OpenSSL/0.9.8m
Content-length: 1048616
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain; charset=ISO-8859-1
XXXXXXXX...
Run Code Online (Sandbox Code Playgroud)
这是数据包概述)
No. Time Source srcp Destination dstp Protocol Info tcp.stream abstime
5 0.112749 10.0.0.1 80 10.0.0.2 48072 TCP [TCP segment of a reassembled PDU] 0 20:52:23.228063
Frame 5: 1514 bytes on wire (12112 bits), 1514 bytes captured (12112 bits)
Ethernet II, Src: 00:12:34:56:78:9a, Dst: 00:12:34:56:78:9b
Internet Protocol Version 4, Src: 10.0.0.1 (10.0.0.1), Dst: 10.0.0.2 (10.0.0.2)
Transmission Control Protocol, Src Port: http (80), Dst Port: 48072 (48072), Seq: 1, Ack: 330, Len: 1460
Run Code Online (Sandbox Code Playgroud)
现在,当我在 Wireshark 中打开流时:
GET /cgi-bin/memfile/memfile.pl
,正如我所期望的有人可以解释为什么 Wireshark 无法识别第五个数据包的 HTTP 性质吗?回复有问题吗?
归档时间: |
|
查看次数: |
10547 次 |
最近记录: |