【计算机网络】WireShark和简单http抓包实验

一:实验目的

1:熟悉WireShark的安装流程和界面操作流程。

2:学会简单http的抓取和过滤,并分析导出结果。

二:实验仪器设备及软件

硬件: Windows 2019操作系统的计算机等。

软件:WireShark、记事本等。

三:实验方案

首先打开WireShark软件,进入外网捕获界面,启动捕获。

然后通过浏览器进入http:// gaia.cs.umass.edu这个域名地址,在html页面中进行多次点击和跳转操作。

最后在WireShark中停止捕获,保存捕获到的报文,并以http条件进行筛选,查看所有与http协议有关的报文内容,回答相应的问题。

四:实验步骤

1)  打开浏览器。

2)  打开 WireShark 并且在捕获选项选择合适的网卡。

3)  开始进行抓包操作,并且在浏览器中打开示例网页。

4)  停止抓包并且分析抓包结果。

5)  在过滤器选择 http 过滤,并且查看过滤结果。

五:实验结果及分析

1列出在协议列中出现的 3 种不同的协议。

第1种:HTTP,如下图所示。

第2种:TCP,如下图所示。

第3种:ARP,如下图所示。

2:从发送 HTTP GET 消息到收到 HTTP OK 回复需要多长时间?

发送GET / HTTP/1.1消息到收到HTTP/1.1 200 OK的过程,如下图所示。

由此可知,其时间间隔为159.562172 - 159.335411 = 0.226761秒。

3:gaia.cs.umass.edu(也称为 wwwnet.cs.umass.edu)的互联网地址是什么? 您的计算机的 Internet 地址是什么?

由下图可知,目的IP地址为128.119.245.12,对应gaia.cs.umass.edu的互联网地址。

源IP地址为192.168.0.108,对应本地计算机的互联网地址。

通过ping方式,验证该域名地址,如下图所示。

4:你的浏览器是否运行 HTTP 版本 1.0 或 1.1?服务器运行的是什么版本的HTTP?

由下图可知,在POST报文中,Request Version是1.1,因此浏览器运行HTTP版本1.1。

由下图可知,在回复报文中,Response Version是1.1,因此服务器运行HTTP版本1.1。

5:你的浏览器接收哪些语言?

浏览器接收标记语言HTML。如下图所示,可以看到content-type为html。

浏览器接收数据格式语言JSON。如下图所示,可以看到content-type为json。

浏览器接收标记语言XML。如下图所示,可以看到content-type为xml。

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

    【1】成功状态码。如下图所示,服务器返回到浏览器的状态代码是200 OK,表示请求成功,服务器已成功处理请求。

【2】重定向状态码。如下图所示,服务器返回到浏览器的状态代码是301 Moved Permanently,表示请求的资源已被永久移动到新位置。

【3】客户端错误状态码。如下图所示,服务器返回到浏览器的状态代码是404 Not Found,表示请求的资源在服务器上找不到。

7:在服务器上最后修改的 HTML 文件是什么时候?

由下图可知,Last-Modified是2016年3月1日,表示在服务器上最后修改的 HTML 文件的时间。

8:浏览器返回了多少 bytes 的内容?

由下图可知,浏览器返回了2651字节的内容。

9:是否在 HTTP GET 中看到“IF-MODIFIED-SINCE”行?

是。如下图所示,出现了If-Modified-Since: Tue, 01 Mar 2016 18:57:50 GMT。

在HTTP GET请求中,If-Modified-Since是一种请求头字段,用于告诉服务器只有在请求的资源自指定日期和时间之后已被修改时,才返回该资源。这是浏览器和服务器之间的一种缓存协商机制,用于优化网络带宽和提高加载速度。

10:多个响应HTTP GET,服务器返回的 HTTP 状态代码和短语分别是什么?为什么不同?304 Not Modified什么意思?

多个HTTP GET的返回状态代码和短语,如下图所示。可以看到有200 OK、301 Moved Permanently、404 Not Found。

HTTP状态代码不同是因为它们表示不同类型的响应,反映了服务器对请求资源的处理结果。

304 Not Modified 状态码的含义是服务器告知客户端,请求的资源自上次请求以来没有被修改,因此客户端可以继续使用其缓存的版本,而无需重新下载。

11:对物理层的数据帧进行解析。

一个示例的物理层的数据帧,如下图所示。

可以看到,该数据帧的编号是42544,帧的总长度为486字节(3888比特),实际捕获的帧长度也为486字节(3888比特)。

捕获数据的网络接口的ID为0号,接口名称为\Device\NPF_{60116A39-C338-4C66-A5CF-5BBC6E88B657},接口描述为外网。

数据帧使用以太网封装类型。同时展示了到达时间、UTC到达时间等内容。

此数据包的时间偏移是0秒,与上一个捕获帧之间的时间差是0.00046秒,与上一个显示帧之间的时间差是63.029081秒,自参考帧或第一个帧以来的时间是159.335411秒。

该帧未被标记,且未被忽略。该帧中包含的协议列表,从最低层到最高层依次为:eth以太网、ethertype以太网类型字段、ip互联网协议、tcp传输控制协议、http超文本传输协议。用于该帧的着色规则名称是HTTP。用于该帧的着色规则字符串为http || tcp.port == 80 || http2。http:该帧包含HTTP协议的数据。tcp.port == 80:该帧的TCP端口是80,通常用于HTTP流量。http2:该帧包含HTTP/2协议的数据。

12:启动WireShark,自行设置过滤条件,重做实验一,观察能否抓到数据并进行分析。

能抓到数据,如下图所示。

如下图所示,源地址fe80::cc2a:d980:500d正在与目的地址fe80::dda:3845:7b8f:dbed进行大量的数据传输。在传输较大数据块的过程中,使用分段传输技术(Segmented Transmission)将数据分成多个TCP段,每个段都有一个序列号和确认号。

如下图所示,前面TCP的内容与上图类似。最后一个报文表示从源地址 fe80::dda:3845:7b8f:dbed 到目的地址 fe80::cc2a:d980:500d 的SMB2写入响应报文。SMB2协议通常用于文件共享和网络通信,这个写入响应报文表示文件写入操作已完成。

六:实验总结及体会

1:从服务器返回到浏览器的状态代码(HTTP状态码)用于指示HTTP请求的结果。这些状态代码由三位数字组成,每个数字有特定的含义。

2:常见的状态代码类别如下:

【1】1xx(信息性状态码):

  1. 100 Continue:继续发送请求的剩余部分。
  2. 101 Switching Protocols:服务器将遵从客户的请求转换到另外一种协议。

【2】2xx(成功状态码):

  1. 200 OK:请求成功,服务器已成功处理请求。
  2. 201 Created:请求成功且资源已被创建。
  3. 204 No Content:请求成功,但没有返回内容。

【3】3xx(重定向状态码):

  1. 301 Moved Permanently:请求的资源已被永久移动到新位置。
  2. 302 Found:请求的资源临时从不同的URI响应请求。
  3. 304 Not Modified:资源未被修改,客户端可以继续使用缓存的版本。

【4】4xx(客户端错误状态码):

  1. 400 Bad Request:请求无效或有语法错误。
  2. 401 Unauthorized:请求要求身份验证。
  3. 403 Forbidden:服务器理解请求但拒绝执行。
  4. 404 Not Found:请求的资源在服务器上找不到。

【5】5xx(服务器错误状态码):

  1. 500 Internal Server Error:服务器遇到未预料的情况,无法完成请求。
  2. 501 Not Implemented:服务器不支持请求的功能。
  3. 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。
  4. 503 Service Unavailable:服务器暂时无法处理请求,可能是由于过载或维护。

3:Server Hello 是 TLS 握手过程中的一个重要步骤。在这个阶段,服务器向客户端发送一个“Hello”消息,其中包含了服务器选择的加密算法、会话ID、服务器随机数以及服务器的证书等信息。

4:Change Cipher Spec 消息是TLS协议中的一个信号,表明从这条消息之后,双方将使用协商好的加密算法和密钥进行通信。

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

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

相关文章

【算法/训练】:动态规划(线性DP)

一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#…

前端面试基础题(微信公众号:前端面试成长之路)

BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BFC、IFC、GFC和FFC Whats FC? 一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域,并…

免费【2024】springboot 宠物领养救助平台的开发与设计

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

普元EOS学习笔记-EOS项目HTTP访问安全和权限控制

前言 对于企业应用系统,出于安全和权限控制的目的,需要对http请求做若干控制。 比如文件上传的时候要控制不允许上传的文件后缀。 又比如控制应用程序中的哪些资源不允许被访问。 EOS项目通过 xml配置文件来实现这一需求。 Http访问管理模块 在EOS项…

【C++版本】protobuf与gRPC

文章目录 一、Protobuf二、安装以及使用protoc参考 一、Protobuf Google Protocol Buffers(protobuf)是一种语言中立、平台中立的序列化协议,旨在高效地将结构化数据进行序列化和反序列化。它主要用于通信协议、数据存储和其他需要高效编码和…

封装和桥接Unity 协程体系

简介 协程(Coroutine)在C#中是一种特殊的函数,它允许开发者编写可以暂停执行并在未来某个时刻恢复执行的代码块。协程通常用于实现异步操作,如延时执行、等待某个事件发生、或者分段执行复杂的任务。在Unity游戏引擎中&#xff0c…

(Arxiv-2023)MobileDiffusion:移动设备上即时文本到图像生成

MobileDiffusion:移动设备上即时文本到图像生成 Paper Title:MobileDiffusion: Instant Text-to-Image Generation on Mobile Devices Paper是谷歌出品 Paper地址 图 1:MobileDiffusion 用于 (a) 文本到图像的生成。(b) Canny 边缘到图像、风…

docker容器cuda不可用,怎么解决?

通过Docker 构建的镜像中,启动之后,发现容器内部读取不到显卡驱动nvidia-smi 1、设置 NVIDIA Docker 存储库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add

Docker容器基础篇

一.Docker容器简要介绍 Docker 是一个开源项目,旨在提供轻量级的应用容器化解决方案。它允许开发者打包应用及其所有依赖项到一个标准化的单元中,称为容器。这些容器可以在开发人员的工作环境中构建,然后轻松地在不同的计算机、服务器或云平…

Redis的分布式锁

目录 一、定义与原理 基于Redis的分布式锁 获取锁 释放锁 锁误删问题:因为key值一样,将别人的锁删掉了 锁误判问题二:判断锁和释放锁不是原子性的 Lua脚本 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁 分布式锁的优点…

Spring Cache常用注解

依赖代码如下&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency> 常用注解详解 1. Cacheable 作用&#xff1a;主要用于配置方法&#xff0c;使其…

Java编写SIP协议

1、编写Server代码 package com.genersoft.iot.vmp.sip; import javax.sip.*; import javax.sip.message.*; import javax.sip.header.*; import java.util.*;public class SimpleSipServer implements SipListener {private SipFactory sipFactory;private SipStack sipStack…

【前端】一文带你了解 CSS

文章目录 1. CSS 是什么2. CSS 引入方式2.1 内部样式2.2 外部样式2.3 内联样式 3. CSS 常见选择器3.1 基础选择器3.1.1 标签选择器3.1.2 类选择器3.1.3 id 选择器3.1.4 通配符选择器 3.2 复合选择器3.2.1 后代选择器 4. CSS 常用属性4.1 字体相关4.2 文本相关4.3 背景相关4.4 设…

前端必备基础【网络通信】(2024最新版)

Ajax Asynchronous Javascript and XML 的缩写&#xff0c;是使用 JS 发起网络通信的技术统称&#xff0c;具体步骤为&#xff1a; 创建 XMLHttpRequest 实例发出 HTTP 请求接收服务器传回的数据更新网页数据&#xff08;通常是部分内容&#xff0c;而不是整个网页&#xff09…

LLM - 理解 大模型 Batch 推理的 Padding Side (左填充或右填充)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140697827 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 使用 Left Padding (左填充) 或者 Right Padding (右填充),HuggingFac…

DBeaver安装与使用教程 免费的连接mysql数据库软件

一、DBeaver安装 &#xff08;一&#xff09;Dbeaver下载 DBeaver 是一个通用的数据库管理工具和 SQL 客户端&#xff0c;免费&#xff0c;跨平台&#xff0c;支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。 官网…

带你学会Git必会操作

文章目录 带你学会Git必会操作1Git的安装2.Git基本操作2.1本地仓库的创建2.2配置本地仓库 3.认识一些Git的基本概念3.1操作流程&#xff1a; 4.一些使用场景4.1添加文件场景一4.2查看git文件4.3修改文件4.4Git版本回退4.5git撤销修改 5.分支管理5.1查看分支5.2创建本地分支5.3切…

【C++进阶】AVL树详解

文章目录 1. AVL树的概念2. AVL树结点的定义3. AVL 树的插入3.1 关于平衡因子3.2 插入代码 4. AVL 树的旋转逻辑4.1 不需要旋转4.2 左旋4.3 右旋4.4 双旋4.4.1 先右后左单旋&#xff08;RL 旋转&#xff09;4.4.2 先左后右单旋&#xff08;LR 旋转&#xff09; 4.5 完整插入代码…

C语言 | Leetcode C语言题解之第301题删除无效的括号

题目&#xff1a; 题解&#xff1a; struct Next { int l, r, cl, cr; };void vec_push(char*** v, int* n, char* s) {if (!(*n & *n1)) {*v realloc(*v, sizeof(char*) * ((*n << 1) | 1));}(*v)[(*n)] s; }void dfs(const char* s, int i, struct Next next[],…

图片格式怎么转换?这几种图片格式转换方法简单又高效

图片已成为我们日常生活与工作中不可或缺的一部分。然而&#xff0c;不同平台和应用往往对图片格式有着特定的要求&#xff0c;这就使得图片格式的转换成为了一项必备技能。下面给大家分享5种能够简单高效的转换图片格式方法&#xff0c;快来一起学习下吧。 方法一&#xff1a;…