目  录

1、实验目的

2、实验环境

3、实验内容

4、实验结果与分析

4.1 使用tcpdump命令抓包

4.2 HTTP字段分析

5、实验小结

5.1 问题与解决办法:

5.2 心得体会:


1、实验目的

        1、了解HTTP协议及其报文结构

        2、了解HTTP操作过程:TCP三次握手、请求和响应交互

        3、掌握基于tcpdump和wireshark软件进行HTTP数据包抓取和分析技术


2、实验环境

        1、硬件要求:阿里云云主机ECS 一台、笔记本电脑一台

        2、软件要求:Linux/ Windows 操作系统


3、实验内容

        使用wget下载新疆大学主页www.xju.edu.cn,利用tcpdump抓包并利用wireshark分析。

        1. 浏览器运行HTTP版本1还是1.1?服务器运行的是什么版本的HTTP?

        2. 你的电脑的IP地址是什么?服务器呢?

        3. 从服务器返回到浏览器的状态代码是什么?

        4. 您在服务器上检索到的HTML文件是在什么时候修改的?

        5. 有多少字节的内容被返回到浏览器?

        6. 除以上已回答过的字段外,头部还有哪些字段?在数据包内容窗口中检查原始数据,是否有未在数据包列表中显示的头部?


4、实验结果与分析

4.1 使用tcpdump命令抓包

        1. 由于开始时并没有wget命令,所以使用如下命令进行wget操作命令的下载。

yum install wget

        2. 使用wget命令下载新疆大学主页www.xju.edu.cn。

wget www.xju.edu.cn

        3. 使用tcpdump命令抓取www.xju.edu.cn网站的数据包,并将所抓取的数据包保存在http.pcap文件中。

tcpdump -i eth0 -w http.pcap

4.2 HTTP字段分析

        1. 使用wireshark打开保存的http.pcap文件,并对数据包进行相关的操作。

        2. 使用过滤器得到与www.xju.edu.cn实现通信的http数据包时在应用显示过滤器输入以下语句。

http and ip.addr==111.115.76.75

        3. 浏览器运行HTTP版本1还是1.1?服务器运行的是什么版本的HTTP?

浏览器运行HTTP版本为1.1

服务器运行的是1.1版本的HTTP

        4. 你的电脑的IP地址是什么?服务器呢?

电脑的IP地址为:192.168.43.199

服务器的IP地址为:111.115.76.75

        5. 从服务器返回到浏览器的状态代码是什么?

从服务器返回到浏览器的状态代码是200,表示成功处理请求

        6. 您在服务器上检索到的HTML文件是在什么时候修改的?

从服务器上检索到的HTML文件时在2023年5月11日 周四 03:38:58修改的

        7. 有多少字节的内容被返回到浏览器?

有107081 bytes的内容被返回浏览器

        8. 除以上已回答过的字段外,头部还有哪些字段?

在HTTP的请求报文中还有:Host,Connection,User-Agent,Accept,Referer,Accept-Encoding,Accept-Language,Server等

        9. 在数据包内容窗口中检查原始数据,是否有未在数据包列表中显示的头部?

没有未在数据包列表中显示的头部


5、实验小结

5.1 问题与解决办法:

        1. 问题一:使用tcpdump进行数据包的抓取时出现如下提示此命令未找到:

解决方法:由于命令输入错误导致,数据包的抓取命令为tcpdump,而不是tcpdnmp,将对应命令进行更改后错误消失。

        2. 问题二:对指定网络接口的数据包进行抓取时出现如下提示语法错误:

解决方法:由于命令键入不完整所导致,指定网络接口所需要的参数是-i,在eth0前方添加-i后错误消失。

        3. 问题三:使用tcpdump抓取所有的数据包时一直在抓取,不能够自动停止抓包:

解决方法:使用Ctrl+c就可以终止运行的命令,进而就可以停止抓包。

        4. 问题四:使用Wireshark对抓取的数据包进行过滤时出现如下提示输入框出现红色:

解决方法:由于过滤命令输入错误,在过滤地址时使用ip.addr,将输入内容中的id.addr改为ip.addr后红色报错消失。

        5. 问题五:使用Wireshark对抓取的数据包进行多个条件同时成立过滤时出现如下提示输入框出现红色:

解决方法:由于多个条件同时成立时需要使用and进行连接,但是输入命令时并没有使用and进行连接所导致,在输入内容中加入and后红色报错消失。

        6. 问题六:使用Wireshark对抓取的数据包进行过滤时出现如下提示输入框出现红色:

解决方法:由于过滤命令对大小写敏感导致输入错误,在过滤HTTP时使用HTTP,将输入内容中的HTTP改为http后红色报错消失。

        7. 问题七:使用wget命令时出现如下提示此命令未找到:

解决方法:由于系统中没有wget命令所导致,需要在使用此命令前通过 yum install wget 命令进行安装。

5.2 心得体会:

        1、HTTP是一个通用的Web协议,它在Web应用程序中扮演着关键的角色。

        2、HTTP不仅是一种协议,而且是Web应用程序开发中的核心要素之一。

        3、HTTP是无状态的,这意味着服务器和客户端之间的每个请求和响应都是独立的,并且服务器不会保留关于任何先前请求或响应的状态信息。

        4、为了处理具有状态的Web应用程序,HTTP引入了Cookie机制。

        5、HTTP是基于请求/响应模型的,客户端发送请求消息,服务器发送响应消息。

        6、每个消息都由一个起始行、一组HTTP头部字段和一个可选的消息体组成。

        7、请求消息用于请求服务器执行特定的操作,而响应消息用于回显服务器的执行结果。

        8、HTTP支持多种请求方法:GET、POST、PUT等来要访问的。

        9、HTTP支持缓存,缓存可以高性能减少延和带宽消。HTTP缓存使用HTTP头部控制缓存。

        10、HTTP使用状态码表示请求和响应的结果。状态码由三位数字组成,例如200表示成功、404表示未找到、500表示服务器内部错误等。

        11、HTTP头部包含的有关消息可以在客户端和服务器之间传递附加信息。

        12、HTTP协议可以帮助我们理解Web应用的基本工作原理。

        13、HTTP协议是一个基于请求和响应模式的协议,它使用头部字段来传递关于请求和响应的元数据。

        14、Accept:指示客户端能够处理的媒体类型。

        15、Accept-Encoding:指示客户端能够处理的压缩类型,服务器可以根据该字段来压缩传输的数据。

        16、Cookie:表示客户端已创建的会话标识。

        17、Host:指定被请求资源的服务器的域名和端口号。

        18、User-Agent:客户端标识,用于标识客户端的类型、系统、浏览器等信息。

        19、Content-Encoding:指示服务器对响应实体执行的压缩类型。

        20、Content-Length:指示响应实体的长度(单位为字节)。

        21、Content-Type:指示响应实体的MIME类型。

        22、Set-Cookie:设置响应的cookie。

        23、Server:指示HTTP服务器的软件名称和版本号。

        24、Cache-Control:控制缓存的行为,例如缓存的最大年龄、是否进行重新验证、是否跳过代理缓存等。

        25、Connection:指示客户端或服务器是否关闭连接。

        26、Date:指示响应的日期和时间。

        27、Transfer-Encoding:指示传输编码。

        28、上述HTTP头部字段是HTTP协议中的常用字段,了解HTTP头部字段的含义和用法可以帮助我们更好地理解HTTP工作的过程及优化网络应用程序的性能。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试实战,问题十三,Redis在Java项目中的作用及使用场景详解,怎么回答

Redis在Java项目中的作用及使用场景详解(面试要点) 一、Redis的核心作用高性能缓存层 原理:Redis基于内存操作(引用[2]),采用单线程模型避免线程切换开销,配合IO多路复用实现高吞吐(…

Python - 100天从新手到大师 - Day6

引言 这里主要是依托于 jackfrued 仓库 Python-100-Days 进行学习,记录自己的学习过程和心得体会。 1 文件读写和异常处理 实际开发中常常会遇到对数据进行持久化的场景,所谓持久化是指将数据从无法长久保存数据的存储介质(通常是内存&…

IP--MGER综合实验报告

一、实验目的完成网络设备(路由器 R1-R5、PC1-PC4)的 IP 地址规划与配置,确保接口通信基础正常。配置链路层协议及认证:R1 与 R5 采用 PPP 的 PAP 认证(R5 为主认证方),R2 与 R5 采用 PPP 的 CH…

window的WSL怎么一键重置

之前用WSL来在windows和服务器之间传输数据,所以有很多数据缓存,但是现在找不到他们的路径,所以想直接重置 首先使用spacesniffer看一下C盘的情况:看起来,这个WSL真的占用了很多空间,但是我又不知道该怎么删…

卷积神经网络研讨

卷积操作原理: 特征向量与遍历:假设已知特征向量(如蓝天白云、绿油油草地特征),在输入图像的各个区域进行遍历,通过计算内积判断该区域是否有想要的特征。 内积计算特征:内积为 0 表示两个向量垂直,关系不好,无想要的特征;夹角越小,内积越大,代表区域中有想要的特征…

【EWARM】EWARM(IAR)的安装过程以及GD32的IAR工程模板搭建

一、简介 IAR官网 EWARM,即 IAR Embedded Workbench for ARM,是由 IAR Systems 开发的一款专门用于 ARM 微处理器软件开发的集成开发环境。以下是具体介绍: 功能特性: 完整工具链支持:集成了高级编辑器、全面的编译…

【工程化】浅谈前端构建工具

一、前端构建工具概述​ 前端构建工具是辅助开发者将源代码转换为浏览器可直接运行的静态资源的工具集合。随着前端技术的发展,源代码往往包含浏览器无法直接解析的语法(如 TypeScript、Sass)、模块化规范(如 ES Modules、Common…

数据取证:Elcomsoft Password Digger,解密 macOS (OS X) 钥匙串信息

Elcomsoft Password Digger(EPD)是一款在 Windows 平台上使用的工具,用于解密存储在 macOS 钥匙串中的信息。该工具可以将加密的钥匙串内容导出到一个纯文本 XML 文件中,方便查看和分析。一键字典构建功能可以将钥匙串中的所有密码…

2.JVM跨平台原理(字节码机制)

目录引言一、跨平台就跟国际语言翻译似的二、字节码和 JVM 到底是啥玩意儿三、解决 “语言不通” 这个老难题四、实现 “一次编写,到处运行” 就这四步五、字节码技术给世界带来的大改变总结引言 咱平常是不是老纳闷儿,为啥同一个 Java 程序&#xff0c…

06-ES6

微任务&宏任务JS是单线程执行。所有要执行的任务都要排队。所有的同步任务会在主线程上排队,等待执行。异步任务:不会进入主线程,而是会进入任务队列。等到主线程上的任务执行完成之后,通知任务队列,执行异步任务。…

FreeSWITCH配置文件解析(10) 配置IP封禁(防暴力破解)

以下是针对FreeSWITCH配置IP封禁(防暴力破解)的完整方案,结合Fail2Ban与系统级防护策略:一、Fail2Ban核心配置(推荐方案)​​启用FreeSWITCH鉴权日志​​修改SIP Profile(conf/sip_profiles/int…

【React 入门系列】React 组件通讯与生命周期详解

🧩 第一章:组件通讯概述在 React 开发中,组件是封装的、独立的功能单元。为了实现组件间的数据共享与协作,需要通过组件通讯机制。组件通讯的意义: 让多个封闭的组件能够共享数据,实现协作功能。&#x1f4…

前端开发 Vue 状态优化

Vue 项目中的状态优化一般都会用Pinia替代Vuex,Pinia 是 Vue 生态系统中的一个轻量级状态管理库,作为 Vuex 的替代品,它提供了更简洁的 API 和更好的性能。模块化管理:使用 Pinia 时,建议将状态拆分为多个 store 模块&…

虚幻基础:创建角色——FPS

能帮到你的话,就给个赞吧 😘 文章目录创建角色设置模型添加摄像机添加位置:插槽弹簧臂:伸缩防止由碰撞导致摄像机穿模摄像机添加武器添加位置:插槽创建动画蓝图:主动获取角色数据并播放相应动画设置角色控制…

2025年入局苹果Vision Pro开发:从零到发布的完整路线图

苹果Vision Pro的发布标志着空间计算(Spatial Computing)进入主流市场。作为开发者,如何快速掌握visionOS开发?本文将为你提供详细的路线图、实践建议与资源指南,涵盖从窗口式应用到沉浸式3D应用的完整开发路径。 一、visionOS开发的核心目标与阶段划分 visionOS的开发可…

百度文心大模型ERNIE全面解析

百度文心大模型ERNIE概述 百度推出的文心大模型(ERNIE,Enhanced Representation through kNowledge IntEgration)系列是结合知识增强技术的预训练大模型,涵盖自然语言处理(NLP)、跨模态、行业应用等多个方向。其开源版本为开发者提供了可商用的大模型能力支持。 ERNIE的…

【SpringAI实战】提示词工程实现哄哄模拟器

一、前言 二、实现效果 三、代码实现 3.1 后端实现 3.2 前端实现 一、前言 Spring AI详解:【Spring AI详解】开启Java生态的智能应用开发新时代(附不同功能的Spring AI实战项目)-CSDN博客 二、实现效果 游戏规则很简单,就是说你的女友生气了&#x…

速通python加密之AES加密

AES加密 AES加密(Advanced Encryption Standard,高级加密标准)是目前全球公认的最安全、应用最广泛的对称加密算法之一,于2001年被美国国家标准与技术研究院(NIST)确定为替代DES的标准加密算法,…

Java 对象秒变 Map:字段自由伸缩的优雅实现

前言 在开发中,我们常常需要把对象转成 Map 格式,用于序列化、传输、展示,甚至硬塞给某些第三方框架吃进去再吐出来。乍一看很简单,字段多起来后就像打翻调色盘,维护起来一不小心就翻车。想优雅地搞定这事,必须有一套稳妥、可扩展的方案,才能写出让同事膜拜、领导点赞、…

激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定

激光雷达-相机标定工具:支持普通相机和鱼眼相机的交互式标定 前言 在自动驾驶、机器人导航等领域,激光雷达和相机的标定是一个基础而重要的问题。准确的标定结果直接影响后续的感知算法性能。本文将介绍一个开源的激光雷达-相机标定工具,支持…