考虑当浏览器发送一个HTTP GET报文时,通过Wireshark 俘获到下列ASCII字符串:
GET /cs453/index.html HTTP/1.1
Host: gaia.cs.umass.edu
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
Accept: ext/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: zip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
指出下面HTTP GET报文中该浏览器所运行的主机的IP地址是什么
- A. 没有包含IP地址
- B. localhost
- C. 127.0.0.1
- D. gaia.cs.umass.edu
- HTTP GET报文中不会直接包含客户端IP地址。IP地址是网络层(TCP/IP)的信息,而HTTP是应用层协议,报文仅包含主机名(如
Host
字段)。 - 客户端IP地址通常由底层协议(如TCP/IP头)或服务器通过连接信息获取(如
X-Forwarded-For
头,但此报文中无)。 gaia.cs.umass.edu
是服务器的域名,非客户端IP。
报文解读:
- 请求行(Request Line):
GET /cs453/index.html HTTP/1.1
- 方法:
GET
(请求获取资源)。 - 路径:
/cs453/index.html
(请求的URI)。 - 版本:
HTTP/1.1
。
- 方法:
- 首部字段(Headers):
Host: gaia.cs.umass.edu
- 指定请求的目标主机(虚拟主机支持必需字段,HTTP/1.1要求)。
User-Agent: Mozilla/5.0 (...)
- 客户端浏览器和操作系统信息(这里是Netscape 7.2,运行于Windows NT 5.1)。
Accept: ...
- 客户端可接受的响应内容类型(优先级通过
q
值表示)。
- 客户端可接受的响应内容类型(优先级通过
Accept-Language: en-us,en;q=0.5
- 优先接收英语内容。
Accept-Encoding: zip,deflate
- 支持的压缩编码方式。
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
- 支持的字符集。
Keep-Alive: 300
- 请求保持TCP连接活跃的时长(300秒)。
Connection: keep-alive
- 要求使用持久连接(HTTP/1.1默认支持,此处显式声明)。
回答时间
根据以下HTTP GET报文,服务器能否成功地找到文档?该文档提供回答是什么时间?
HTTP/1.1 200 OK # 响应状态行:服务器成功返回请求的文档(状态码200)
Date: Tue,07 Mar 2008 12:39:45GMT # 响应头:服务器生成此响应的时间(2008年3月7日)
Server: Apache/2.0.52 (Fedora) # 响应头:服务器软件版本(Apache 2.0.52)
Last-Modified: Sat,10 Dec2005 18:27:46 GMT # 响应头:文档最后修改时间(2005年12月10日)
ETag: "526c3-f22-a88a4c80" # 响应头:文档唯一标识符(用于缓存验证)
Accept-Ranges: bytes # 响应头:支持按字节范围请求
Content-Length: 3874 # 响应头:响应体长度(3874字节)
Keep-Alive: timeout=max=100 # 响应头:持久连接参数(超时100秒)
Connection: Keep-Alive # 响应头:保持TCP连接活跃
Content-Type: text/html; charset=ISO-8859-1 # 响应头:文档类型为HTML,字符集为ISO-8859-1
# 空行(分隔头部和正文)
<!doctype html public ...> # 响应体开始:HTML文档内容(省略后续部分)
- 能否成功找到文档-响应状态行(状态码200)表示成功找到文档
- 文档回答时间-
Date
服务器生成响应的时间
浏览器类型
根据以下HTTP GET报文,发起该报文的浏览器的类型是什么?
GET /cs453/index.html HTTP/1.1
Host: gai.cs.umass.edu
User-Agent: Mozilla/5.0 (Windows;U; Windows NT 5.1, en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
Accept: ext/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: zip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
浏览器类型:
User-Agent
字段明确标识了浏览器的信息:Mozilla/5.0
(标准浏览器标识,表示兼容Mozilla)Gecko/20040804
(渲染引擎版本)Netscape/7.2
(实际浏览器名称)Windows NT 5.1
(运行的操作系统)
返回的字节
根据以下HTTP GET报文,文档中被返回的字节有多少?
HTTP/1.1 200 OK
Date: Tue,07 Mar 2008 12:39:45GMT
Server: Apache/2.0.52 (Fedora)
Last-Modified: Sat,10 Dec2005 18:27:46 GMT
ETag: "526c3-f22-a88a4c80"
Accept-Ranges: bytes
Content-Length: 3874
Keep-Alive: timeout=max=100
Connection: Keep-Alive
Content-Type: text/html; charset=ISO-8859-1
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.79[en] (Windows NT 5.0; U) Netscape">
<title>CMPSCI 453 / 591 / NTU-ST550A Spring 2005 homepage</title>
</head>
<much more document text following here (not shown)>
返回的字节数:
Content-Length
:表示响应体(即返回的 HTML 文档)的字节数,这里是 3874。
响应体内容
根据以下HTTP GET报文,文档被返回的前五个字节是什么?
HTTP/1.1 200 OK
Date: Tue,07 Mar 2008 12:39:45GMT
Server: Apache/2.0.52 (Fedora)
Last-Modified: Sat,10 Dec2005 18:27:46 GMT
ETag: "526c3-f22-a88a4c80"
Accept-Ranges: bytes
Content-Length: 3874
Keep-Alive: timeout=max=100
Connection: Keep-Alive
Content-Type: text/html; charset=ISO-8859-1
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
...
Coutent-Type
之后有一个空行
头部和正文之间通过空行分隔,空行后的内容就是响应体(即文档内容)
HTTP连接类型
根据以下HTTP GET报文,该浏览器请求的是一条非持续连接还是一条持续连接?
GET /cs453/index.html HTTP/1.1
Host: gai.cs.umass.edu
User-Agent: Mozilla/5.0 (Windows;U; Windows NT 5.1, en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
Accept: ext/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: zip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
关键字段分析:
Connection: keep-alive
- 明确要求服务器使用持续连接(HTTP/1.1默认行为,但此字段显式声明)。
- 若为
Connection: close
,则为非持续连接。
Keep-Alive: 300
- 附加参数,表示希望保持连接活跃300秒(进一步确认持续连接意图)。
- HTTP版本
- 协议为
HTTP/1.1
,默认支持持续连接(不同于HTTP/1.0默认关闭连接)。
- 协议为