第一次作业:使用Packet Tracer分析HTTP包
0 个人信息
- 张樱姿
- 201821121038
- 计算1812
1 实验目的
熟练使用Packet Tracer工具。分析抓到的HTTP数据包,深入理解:HTTP协议,包括语法、语义、时序。
2 实验内容
客户端向服务器发送请求报文,服务器向客户端发送响应报文。
- 建立网络拓扑结构
- 配置参数
- 抓包
- 分析数据包
3 实验报告
本实验使用Cisco Packet Tracer这个平台来对网络环境进行模拟。
3.1 建立网络拓扑结构

如图,将一台PC端和一台Server端相连。
分析:客户(PC端)和服务器(Sever端)是通信中所涉及的两个应用进程,要达到抓包的目的,就需要建立通信关系,即需要在同一网段内。
3.2 IP配置
PC端的IP地址:192.168.1.38,子网掩码:255.255.255.0
服务器的IP地址:192.168.1.100,子网掩码:255.255.255.0
分析:对于PC端和服务器的IP配置,其子网掩码相同,在同一网段内,可以相互通信。
3.3 抓HTTP包并分析
3.3.1 使用PC端的Web Browser,在URL栏输入服务器的IP地址进行访问。

3.3.2 点击右下角的Simulation键进行仿真。
3.3.3 只勾选支持HTTP协议:

3.3.4 仿真后的信息传递结果如下:


3.3.5 请求报文分析:

注:此处报文省略了Get /HTTP/1.1,Get表示方法,请求读取URL所标志的信息,其后有一个空格,接着是一个完整的URL(此处使用了相对URL,即省略了主机的域名),后面又是一个空格,最后的HTTP/1.1表示HTTP的版本是1.1的。
- HTTP Data:Accept-Language:en-us表示用户希望优先得到英文版本的文档
- Accept:*/*表示用户希望接受任意数据类型
- Connection:close表示告诉服务器发送完请求的文档后就可释放链接
- Host:192.168.1.100表示用户所访问主机的域名
3.3.6 响应报文分析:

注:此处省略了HTTP/1.1 200 OK表示HTTP版本是1.1,200是状态码,表示OK。
- HTTP Data:Connection:close表示告诉服务器发送完响应的文档后就可释放链接
- Content-Length:369表示HTTP消息实体的传输长度
- Content-Type:text/xml表示设置页面内容是html
- Server:PT-Server/5.2表示后台服务器
3.4 Q&A
Q:关于HTTP协议的工作流程?
A:(图源自Carson_Ho的CSDN博客)

Q:关于响应报文的状态码?
A:状态码可分为5大类:
- 1XX:通知信息
- 2XX:成功
- 3XX:重定向
- 4XX:客户端出错
- 5XX:服务器出错
Q:常用的状态码?
A:
- 200:请求成功,请求内容与该响应一起返回
- 202:请求已被接受,但还没处理
- 301:请求的资源已被永久移动到新的位置
- 302:请求的资源被临时移动到新的位置
- 400:请求参数有误,当前请求无法被服务器理解
- 403:不允许访问该地址
- 404:Not Found
- 408:请求超时
- 500:服务器内部错误
- 502:Bad Gateway(网关出错)
4 Reference
计算机网络基础:这是一份详细 HTTP 学习指南----Carson_ho的CSDN博客
(https://blog.csdn.net/carson_ho/article/details/82106781)
第一次作业:使用Packet Tracer分析HTTP包的更多相关文章
- 第一次实验报告:使用Packet Tracer分析HTTP数据包
目录 1 实验目的 2 实验内容 3. 实验报告 第一次实验报告:使用Packet Tracer分析HTTP数据包 1 实验目的 熟练使用Packet Tracer工具.分析抓到的HTTP数据包,深入 ...
- 第1次作业:使用Packet Tracer分析HTTP数据包
个人信息: • 姓名:李微微 • 班级:计算1811 • 学号:201821121001 一.摘要 本文将会描述使用Packet Tracer工具用到的网络结构 ...
- 第三次作业:使用Packet Tracer分析TCP连接的建立与释放过程
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 使用路由器连接不同的网络 使用命令行操作路由器 通过抓取HTTP报文,分析TCP连接建立的过程 2 实验内容 使用Packe ...
- 第二次作业:使用Packet Tracer分析应用层协议(DNS、FTP、DHCP、SMTP、POP3)
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序. 2 实验内容 ...
- 第三次实验报告:使用Packet Tracer分析TCP连接建立过程
目录 1 实验目的 2 实验内容 3. 实验报告 3.1 建立网络拓扑结构 3.2 配置参数 3.3 抓包,分析TCP连接建立过程 4. 拓展 (不作要求,但属于加分项) 1 实验目的 使用路由器连接 ...
- 第二次实验报告:使用Packet Tracer分析应用层协议
个人信息: • 姓名:李微微 • 班级:计算1811 • 学号:201821121001 一.摘要 本文描述使用Packet Tracer,正确配置网络参数,抓 ...
- 第二次实验报告:使用 Packet Tracer 分析应用层协议
个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...
- 第一次使用cisco packet tracer
搭建一个如图所示的网络,左边局域网是10.0.0.0网段,右边局域网是12.0.0.0网段,中间为广域网11.0.0.0网段 上面的成功了,但是不是很熟悉,下面重新来一遍 1.先用可视化界面建立一个如 ...
- 第四次作业:使用Packet Tracer理解RIP路由协议及ICMP协议
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 理解RIP路由表的建立与更新 感受RIP坏消息传得慢 2 实验内容 使用Packet Tracer,正确配置网络参数,使用命 ...
随机推荐
- jmeter+ant生成xml报告
1.jdk安装 2.jmter安装 3.ant安装 下载apache-ant-1.10.6-bin.zip,直接解压就可使用,和jmeter类似 ant环境变量配置 新建系统变量:ANT_HOME,变 ...
- Mybatis 中的<![CDATA[ ]]>浅析
在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]&g ...
- 如何实现QQ附件在线预览功能
方法一:使用 openoffice 的接口把文档转换成html (linux主机或者windows主机): 方法二:使用 一个叫 jacob.jar 的工具,在安装了 office 的windows主 ...
- js中更改this指向 以及回顾bind、call和apply
1.更改this指向 方法1:对this进行保存 var _this = this; 例: var _this = this; document.onclick = fu ...
- 三维动画形变算法(Laplacian-Based Deformation)
网格上顶点的Laplace坐标(均匀权重)定义为:,其中di为顶点vi的1环邻域顶点数. 网格Laplace坐标可以用矩阵形式表示:△=LV,其中,那么根据网格的Laplace坐标通过求解稀疏线性方程 ...
- swith case判断
swith case是js中的一种判断方式 应用于变量或表达式在不同值情况下的不同操作,每一种case结束都要加break结束整个判断 var num = 2; switch(num){ case 0 ...
- python画混淆矩阵(confusion matrix)
混淆矩阵(Confusion Matrix),是一种在深度学习中常用的辅助工具,可以让你直观地了解你的模型在哪一类样本里面表现得不是很好. 如上图,我们就可以看到,有一个样本原本是0的,却被预测成了1 ...
- 关于ionic app $http.get()无法请求,导致页面没有数据的问题
ionic app 打包后在真机上运行,无法用正常使用http.get(),这种情况被称为“白名单”,解决方法:切换到项目根目录,执行命令:cordova plugin add cordova-plu ...
- C函数指针状态机实现
C函数指针状态机实现 有限状态机(finite state machine)简称FSM,表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用.FSM是一种逻辑单元内部 ...
- C 扩展对闭包特性的支持
今日听说某君批评 C 语言说它[输入一个参数返回一个函数]很困难. 例如在 Python 中,你可以 def addn(n): def addx(x): return n + x return add ...