HTTP协议分析实验:通过一次下载任务抓包分析

HTTP协议分析

问:HTTP是干啥用的?
最简单通俗的解释:HTTP 是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。 在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。

一、实验简介

本实验主要讲解HTTP协议的应用,通过一次下载任务,抓取HTTP协议数据报文,对HTTP的请求和相应报文进行详细的分析。

二、实验目标

1.了解运输层HTTP协议基本概念、报文结构;
2.分析HTTP报文头部;
3.分析HTTP请求和相应过程;
4.掌握使用wireshark进行HTTP协议分析技术。

三、实验环境

实验主机:centos7和本地Windows
实验工具:Wireshark

四、实验步骤

1.在本地Windows上打开Wireshark,选择要抓取的网卡,我们虚拟机使用的是VMnet8,所以这里选择这个网卡。

2.打开centos7虚拟机,确保虚拟机可以上网

3.为了使用方便,我们可以使用远程连接工具连接虚拟机,这里使用的使用SecureCRT

4.准备一个下载连接,这里我们下载阿里云的centos7yum文件,文件比较小,下载起来方便,需要使用wget命令,没有这个命令的需要提前安装以下,下载命令:wgethttp://mirrors.aliyun.com/repo/Centos-7.repo
5.将下载连接复制并粘贴到虚拟机,开始下载

6.将抓取到的数据包保存,方便后续查看

7.打开上一步保存的数据包文件,右键选中其中一条TCP数据包,选择对话过滤,再选择TCP数据,就可以单独查看这一次会话的数据包

8.过滤出来的这次下载任务的会话数据包

9.接下来,我们就对HTTP协议进行分析,HTTP协议是建立在TCP/IP协议基础之上应用层协议,关于HTTP协议的原理在前面有详细的讲解,这里在简单通俗的解释一下,HTTP是一个简单的请求-响应协议,可以理解为HTTP协议做了两件事,第一是发送请求,第二是响应请求,通过浏览器发送请求,服务器收到请求后再将客户端需要的结果返回;HTTP协议并不负责传输,只负责打包请求数据和打包响应数据,传输数据是由TCP/IP协议负责的。
我们先来看看HTTP请求和响应出现再哪里?

从上面这个图中我们可以看到,当TCP传输通道建立完成,客户端便发起HTTP请求,中间是服务器发送给客户端的确认报文,确认完成之后,服务器开始响应客户端的请求,将客户端需要的数据发送过来;完成之后客户端会发送确认报文。
10.分析HTTP请求报文,请求由本地虚拟机192.168.130.207发送给阿里云服务器111.48.183.233,请求提交的方法是GET方法。

接下来我们查看应用层协议的详细信息,解释一下Wireshark中间这部份各项对应的含义,首先是Ethernet,这里对应的是数据链路层的信息,可以看到源MAC地址和目标MAC地址;Internet是网络层,可以看到源IP地址和目标IP地址;TransmissionControlProtocol就是传输层,可以看到源端口和目标端口;最后一个就是应用层,本次实验主要讲解的协议,HypertextTransferProtocol也就是HTTP协议。

11.请求行分析,一个HTTP请求报文由请求行(requestline)、请求头部(header)、空行和请求数据4个部分组成,前三行为请求行。请求行中的method表示这次请求使用的是get方法。请求方法的种类比较多,如option,get,post,head,put,delete,trace等,常用的主要是get和post两种。请求方法之后是URI,表示请求的页面地址,即/repo/Centos-7.repo,这是客户端请求的地址,这个地址是该资源再服务器上的地址,还要加上服务器地址才是一个完整的地址。之后是表示http的版本。

get表示请求页面信息,返回页面实体;post是请求服务器将指定文档作为请求的url中的从属实体,简单说,我们常用的在网页中填写表单然后申请等动作就是使用了post方法,填写用户名密码登录站点就使用了post方法。

12.请求首部分析,本次实验请求的是一个文件,如果请求的是一个html页面的话,
User-Agent:提供了客户端浏览器的类型和版本。
Accept:请求的对象类型。如果是“/”表示任意类型,如果是指定的类型,则会变成“type/”。
Host:连接的目标主机,如果连接的服务器是非标准端口,在这里会出现使用的非标准端口。
Connection:对于HTTP连接的处理,keep-alive表示保持连接,如果是在响应报文中发送页面完毕就会关闭连接,状态变为close。

13.请求实体,HTTP请求实体是指在请求或响应中传输的有效载荷数据,通俗的讲就是你要发送给服务器具体数据或者服务器要返回给你的具体数据。

14.HTTP响应报文分析,HTTP响应报文通常分成如下几部分:第一部分是状态行,第二部分是Headers,第三部分是Body。
响应状态行分析:
ResponseVersion:HTTP/1.1是http版本,常用的就是1.1;
StatusCode:200是状态码,常见的有200,表示成功,404,表示找不到内容;
ResponsePhrase:OK是状态信息。

响应首部行分析:
Server:服务器应用程序软件的名称和版本;
Content-Type:响应正文的类型(是图片还是二进制字符串);
Content-Length:响应正文长度;
Connection:连接状态;
Date:表示响应的日期;
本实验请求的是一个文件,如果我们请求的是一个html页面的话,还会看到Content-Charse:响应正文使用的编码,Content-Encoding:响应正文使用的数据压缩格式,
Content-Language:响应正文使用的语言等信息。

响应正文Body:
服务器发送给客户端的内容,也是客户端所请求的内容。

15.状态码拓展
HTTP状态码被分成了五大类。状态码为客户端提供了一种理解事务处理结果的便捷方式。

五、实验总结

本次实验旨在深入了解HTTP协议应用,并通过一次下载任务,抓取HTTP协议数据报文进行详细分析。重点在于理解HTTP协议的基本概念、报文结构,分析HTTP报文头部,掌握HTTP请求和相应过程,以及使用Wireshark工具进行HTTP协议分析技术。实验可能的难点和易错点包括理解HTTP报文结构和字段含义,以及正确使用Wireshark工具捕获和分析数据包。确保对HTTP协议各方面有清晰理解,将有助于顺利完成实验并达到预期的学习目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/690954.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

btstack协议栈实战篇--GAP Link Key Management

btstack协议栈---总目录-CSDN博客 目录 1.GAP 链接密钥逻辑 2.蓝牙逻辑 3.主应用程序设置 4.log信息 展示了如何遍历存储在 NVS 中的经典链接密钥,链接密钥是每个设备-设备绑定的。如果蓝牙控制器可以交换,例如在桌面系统上,则每个控制器都需…

Shell脚本学习_环境变量深入

目录 1.Shell环境变量深入:自定义系统环境变量 2.Shell环境变量深入:加载流程原理介绍 3.Shell环境变量深入:加载流程测试 4.Shell环境变量深入:识别与切换Shell环境类型 1.Shell环境变量深入:自定义系统环境变量 …

8.3 Go 包的组织结构

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

WPS JS宏获取自动筛选后的行数

//WPS JS宏获取自动筛选后的行数 function getFilterRowCnt(shtRng)//shtRng表示筛选目标工作表范围 {let lngRowCnt 0;for(let rngCell of shtRng.SpecialCells(xlCellTypeVisible).Areas)//获取自动筛选后的单元格行数{lngRowCnt lngRowCnt rngCell.Rows.Count;}return ln…

从0到1:企业办公审批小程序开发笔记

可行性分析 企业办公审批小程序,适合各大公司,企业,机关部门办公审批流程,适用于请假审批,报销审批,外出审批,合同审批,采购审批,入职审批,其他审批等规划化…

关于音乐播放器与系统功能联动功能梳理

主要实现功能: 一、通知栏播放显示和控制 二、系统下拉栏中播放模块显示同步 三、与其他播放器状态同步:本应用播放时暂停其他应用播放,进入其他应用播放时,暂停本应用的后台播放 通知栏播放的显示和控制: 通过Not…

RTKLIB之RTKPLOT画图工具

开源工具RTKLIB在业内如雷贯耳,其中的RTKPLOT最近正在学习,发现其功能之强大,前所未见,打开了新的思路。 使用思博伦GSS7000卫星导航模拟器,PosApp软件仿真一个载具位置 1,RTKPLOT支持DUT 串口直接输出的NMEA数据并…

基于深度学习的中文标点预测模型-中文标点重建(Transformer模型)【已开源】

基于深度学习的中文标点预测模型-中文标点重建(Transformer模型)提供模型代码和训练好的模型 前言 目前关于使用深度学习对文本自动添加标点符号的研究并不多见,已知的开源项目也较少,而对该领域的详细介绍更是稀缺。然而&#x…

苹果手机微信如何直接打印文件

在快节奏的工作和生活中,打印文件的需求无处不在。但你是否曾经遇到过这样的困扰:打印店价格高昂,让你望而却步?今天,我要给大家介绍一款神奇的微信小程序——琢贝云打印,让你的苹果手机微信直接变身移动打…

React Hooks路由传参

场景:如何把想要的参数带到跳转过去的页面里呢?很简单 上代码: 在你需要跳转的页面上 引入 Link用来跳转使用 Link跳转并携带参数 然后需要什么参数就带什么过去喽 这里record里面存的就是我的数据 我只需要id和state然后到你跳转过去的页面…

MySQL-备份(三)

备份作用:保证数据的安全和完整。 一 备份类别 类别物理备份 xtrabackup逻辑备份mysqldump对象数据库物理文件数据库对象(如用户、表、存储过程等)可移植性差,不能恢复到不同版本mysql对象级备份,可移植性强占用空间占…

【C语言】详解函数(上)(庖丁解牛版)

文章目录 1. 前言2. 函数的概念3.库函数3.1 标准库和头文件3.2 库函数的使用3.2.1 头文件的包含3.2.2 实践 4. 自定义函数4.1 自定义函数的语法形式4.2 函数的举例 5. 形参和实参5.1 实参5.2 形参5.3 实参和形参的关系 6. return 语句6. 总结 1. 前言 一讲到函数这块&#xff…

算法—字符串操作

394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string longestCommonPrefix(vector<string>& strs) { string retstrs[0];//***1***记得先要初始化ret&#xff0c;作为第一个比较值for(int i0;i<strs.size();i){retfoundcom…

聪明人社交的基本顺序:千万别搞反了,越早明白越好

聪明人社交的基本顺序&#xff1a;千万别搞反了&#xff0c;越早明白越好 国学文化 德鲁克博雅管理 2024-03-27 17:00 作者&#xff1a;方小格 来源&#xff1a;国学文化&#xff08;gxwh001&#xff09; 导语 比一个好的圈子更重要的&#xff0c;是自己优质的能力。 唐诗宋…

视觉SLAM十四讲:从理论到实践(Chapter9:后端1)

前言 学习笔记&#xff0c;仅供学习&#xff0c;不做商用&#xff0c;如有侵权&#xff0c;联系我删除即可 一、目标 1.理解后端的概念。 2.理解以EKF为代表的滤波器后端的工作原理。 3.理解非线性优化的后端&#xff0c;明白稀疏性是如何利用的。 4.使用g2o和Ceres实际操作…

代码随想录算法训练营第36期DAY49

DAY49 139单词拆分 没有思路。 回溯法 回溯怎么做呢&#xff1a;拼接str&#xff0c;看能不能拼出来。注意每个单词能用多次&#xff0c;不是用了就没。 但是语法还是难写。 自己的思路不好&#xff0c;题解思路&#xff1a;枚举所有分割字符串&#xff0c;判断是否在字典…

史上最有趣嫁妆:晋公盘的传奇

在遥远的春秋时代&#xff0c;晋国的晋文公为他的女儿用心打造了一件独特的嫁妆——晋公盘。 晋公盘由青铜制成&#xff0c;形状独特&#xff0c;工艺精湛。在晋公盘内底中央&#xff0c;一对精美的浮雕龙盘绕成圆形&#xff0c;盘上饰有鸟、龟、鱼、蛙等多种动物&#xff0c;最…

利用R包“Phenotype”对表型值进行检查

首先&#xff0c;你需要确保你已经安装了R和RStudio&#xff08;如果你想用RStudio的话&#xff09;。然后&#xff0c;你可以按照以下步骤进行操作&#xff1a; 加载数据&#xff1a;首先&#xff0c;你需要加载你的表型数据。如果你的数据是以CSV、Excel等格式保存的&#x…

设计模式-中介者(调停者)模式(行为型)

中介者模式 中介者模式是一种行为型模式&#xff0c;又叫调停者模式&#xff0c;它是为了解决多个对象之间&#xff0c;多个类之间通信的复杂性&#xff0c;定义一个中介者对象来封装一些列对象之间的交互&#xff0c;使各个对象之间不同持有对方的引用就可以实现交互&#xf…

LabVIEW伺服电机测控系统

LabVIEW伺服电机测控系统 开发了一个基于LabVIEW的伺服电机测控系统。系统主要用于精确控制电机的运动&#xff0c;以达到高效率和高精度的要求。通过使用LabVIEW软件和配套的硬件&#xff0c;开发者能够实现对伺服电机的实时监控和控制&#xff0c;进而提高整个系统的性能和可…