个人信息
- 姓名 吴星龙
- 学号 201821121102
- 班级 计算1814
第一次实验报告:使用Packet Tracer分析HTTP数据包
1 实验目的
熟练使用Packet Tracer工具。分析抓到的HTTP数据包,深入理解:HTTP协议,包括语法、语义、时序。
2 实验内容
客户端向服务器发送请求报文,服务器向客户端发送响应报文。具体包含:
- 建立网络拓扑结构
- 配置参数
- 抓包
- 分析数据包
3. 实验报告
(1)建立网络拓扑结构图
<1>.配置客户端的IP地址
<2>.配置服务器的IP地址
(3)抓包并分析抓到的数据包
<1>.选定HTTP协议并发送数据包
<2>.分析数据包
<2.1>.请求报文
由于自己电脑安装的Cisco Packet Tracer版本为最新版本所以无法显示方法和版本,不过根据在机房做过的测试可以知道方法为GET,版本为HTTP 1.1
方法:GET 意思是请求读取由URL所标志的信息的首部
版本:HTTP 1.1
Accept-Language: en-us:浏览器支持的语言分别是英文,优先支持简体英文。
Connection:close:告诉服务器发送完请求的文档后就可以释放链接。
Host:192.168.1.111:主机的域名。
<2.2>响应报文
HTTP Data:Connection:close:告诉服务器发送完响应的文档就可以释放链接。
Content-Length:369:报头以外的内容长度。
Content-Type:text/html:代表发送端发送的数据格式是html
Server:PT-Server/5.2:服务pt文件
(4)通过该实验产生新的疑问及解答
<1>问题:在响应报文中的Content-Length可能为0。
解答:为0的意思是:表示的是返回是内容字节长度为0,即是请求返回包体是空的。
<2>问题:HTTP的版本除了现在的1.1还有1.0,这两种版本在抓包时会有什么不同。
解答:(1).Host头处理,在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)。
(2).Connection状态,在请求报文中和响应报文中,Connection的状态可能不同,1.0版本可以为由keep-alive,即一直传输数据。而1.1版本中没有这个状态。
(3).长连接,HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。
(4).请求报文的方法,
<3>问题:HTTP/1.1中响应报文的状态码可以有几种
(附上详细状态码表)
① 提示信息 100 继续 101 交换协议
② 成功 200 OK 201 已创建 202 接收 203 非认证信息 204 无内容 205 重置内容 206 部分内容
③ 重定向 300 多路选择 301 永久转移 302 暂时转移 303 参见其它 304 未修改(Not Modified) 305 使用代理
④ 客户端错误 400 错误请求(Bad Request) 401 未认证 402 需要付费 403 禁止(Forbidden) 404 未找到(Not Found) 405 方法不允许 406 不接受 407 需要代理认证 408 请求超时 409 冲突 410 失败 411 需要长度 412 条件失败 413 请求实体太大 414 请求URI太长 415 不支持媒体类型
⑤ 服务器错误 500 服务器内部错误 501 未实现(Not Implemented) 502 网关失败 504 网关超时 505 HTTP版本不支持