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

news2025/1/17 13:52:43

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协议各方面有清晰理解,将有助于顺利完成实验并达到预期的学习目标。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Adobe XD最新版号查询,如何使用?

Adobe XD是Adobe家推出的基于矢量的原型设计合作工具,被业界视为应对Sketch的“对抗”产品。Adobe XD不同于Sketch的系统限制,灵活性比较高,Windows和Mac都可以使用。自2017年推出以来,Adobe XD版经历了多次更新,这篇文…

【Python报错】已解决SyntaxError: can’t assign to function call

成功解决“SyntaxError: can’t assign to function call”错误的全面指南 在Python编程中,语法错误(SyntaxError)是初学者和经验丰富的开发者都可能遇到的问题。其中,“SyntaxError: can’t assign to function call”这个错误常…

IM即时通信技术

本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl IM,即Instant Messaging,是指即时通讯技术,它允许用户通过互联网实时交换文本、语音、视频、文件等多种形式的信息。这种技术打破了传统通信方式的时…

Spring AOP(实现,动态原理)详解版

Spring AOP 1.什么是AOP?1.1引入AOP依赖1.2编写AOP程序 2.Spring AOP核⼼概念2.1 切点(Pointcut)2.2连接点(Join Point)2.3通知(Advice)2.4 切⾯(Aspect) 3.通知类型3.1顺序3.2切⾯优先级 Order3.3 ⾃定义注解 MyAspect 4. Spring AOP 原理5 动态代理怎么实现5.1 JD…

大学数字媒体艺术设计网页设计试题及答案,分享几个实用搜题和学习工具 #媒体#职场发展

现在读书可不像小时候,以前想要校对试题答案,都得找到对应的纸质版答案查看,而且有的还只有答案,没有解析,无法弄清楚答案的由来。但是现在不一样了,现在我们可以通过搜题软件,寻找试题的答案&a…

性能优化随笔(一)

在软件开发过程中,一般要先实现功能方面的需求,功能方面的需求开发完毕之后,往往会考虑性能方面的优化。在业务发展的初期,性能往往能满足使用的需求,这时性能优化不是必不可少的。随着业务的发展,软件复杂…

MySQL提权之UDF提权

1、前言 最近遇到udf提权,几经周折终于搞懂了。感觉挺有意思的,渗透思路一下子就被打开了。 2、什么是udf提权 udf 全称为user defined function,意思是用户自定义函数。用户可以对数据库所使用的函数进行一个扩展(windows利用…

Vue2工程化

本节目标 工程化开发项目运行流程组件化组件注册自定义创建项目 工程化开发 基于构建工具的环境开发Vue Webpack的缺点 webpack的配置并不简单基础的配置雷同各公司缺乏统一标准 Vue CLI Vue CLI是Vue官方提供的一个全局命令工具帮助我们快速创建标准化的开发环境( 集成了w…

【TB作品】MSP430F5529,单片机,电子秒表,秒表

硬件 MSP430F5529开发板7针0.96寸OLED /* OLED引脚分配 绿色板子DO(SCLK)------P4.3D1(DATA)------P4.0RES-----------P3.7DC------------P8.2CS------------P8.1 */ 程序功能 该程序是一个用C语言编写的,用于msp430f5529微控制器上的简单电子秒表应用。它使用…

2024年如何通过完善的工程化,从0到1手把手建立个人 react 组件库

本文聚焦于快速创建并部署个人的组件库,方便平时开发中将通用的组件抽出,也可用于简历上展示个人的组件成果~ 组件库体验地址:components-library 关于以上内容,你是否好奇如何实现的,对于大多数项目,诸如…

USB Type-C 和 USB供电数据和电源角色

USB Type-C 连接器生态系统随着现代平台和设备需求的变化而不断发展。 USB Type-C 连接器生态系统可满足现代平台和设备不断变化的需求,并且符合更小、更薄且更轻便的外形设计趋势。此外,针对 Type-C 连接器修改 USB PD 有助于满足高耗电应用的需求。 …

容声冰箱正式发布主动除菌净味白皮书,守护家人饮食健康

近日,由中国家用电器研究院指导、全国家用电器工业信息中心和容声冰箱联合编制的《冰箱主动除菌净味技术发展白皮书》(下称《白皮书》)正式发布。 《白皮书》指出,容声将IDP主动除菌技术应用到冰箱冷冻、冷藏区域,实现…

百华鞋业祝莘莘学子旗开得胜,一举夺魁

在知识的海洋中, 有一群人以笔为剑, 在漫长的岁月里不断磨砺, 只为迎接那场人生的重要战役——高考。 高考, 是学子们十几年寒窗苦读的见证, 是他们用奋斗书写青春考卷的舞台。 在这个舞台上, 他们将…

硕思闪客精灵(shankejingling)软件最新版下载及详细安装教程

闪客精灵(Sothink SWF Decompiler)是一款先进的SWF反编译软件,它不但能捕捉、反编译、查看和提取Shock Wave Flash影片(.swf和.exe格式文件),而且可以将SWF格式文件转化为FLA格式文件。它能反编译Flash的所…

YOLOv10开源,高效轻量实时端到端目标检测新标准,速度提升46%

前言 实时目标检测在自动驾驶、机器人导航、物体追踪等领域应用广泛,近年来,YOLO 系列模型凭借其高效的性能和实时性,成为了该领域的主流方法。但传统的 YOLO 模型通常采用非极大值抑制 (NMS) 进行后处理,这会增加推理延迟&#…

k8s挂载配置文件(通过ConfigMap方式)

一、ConfigMap简介 K8s中的ConfigMap是一种用于存储配置数据的API对象,属于Kubernetes中的核心对象。它用于将应用程序的配置信息与容器镜像分离,以便在不重新构建镜像的情况下进行配置的修改和更新。ConfigMap可以存储键值对、文本文件或者以特定格式组…

Selenium with Python Behave(BDD)

一、简介 Python语言的行为驱动开发,Behavior-driven development,简称BDD. "Behavior-driven development (or BDD) is an agile software development technique that encourages collaboration between developers, QA and non-technical or bu…

Java锁的四种状态(无锁、偏向级锁、轻量级锁、重量级锁)

介绍 首先,我们需要明确一点:偏向级锁、轻量级锁、重量级锁只针对synchronized 锁的状态总共有四种,级别由低到高依次为:无锁、偏向锁、轻量级锁、重量级锁。 这四种锁状态分别代表什么,为什么会有锁升级&#xff…

项目管理--领导者vs管理者

项目管理领导者和管理者,虽然这两个角色在项目管理中都非常重要,但它们之间还是存在一些区别。首先,让我们来了解一下这两个角色的定义和职责。项目管理领导者是指那些能够激励团队成员,带领他们朝着共同目标前进的人。他们具备良…