如何建立一个视频网站,凡科建设网站步骤,手机版网站案例,网站建设公司做前端计算机网络 课程基础实验一 应用协议与数据包分析实验(Wireshark)
计科210X 甘晴void 202108010XXX
一、实验目的#xff1a;
通过本实验#xff0c;熟练掌握Wireshark的操作和使用#xff0c;学习对HTTP协议进行分析。
二、实验内容
2.1 HTTP 协议简介
HTTP 是超文本…计算机网络 课程基础实验一 应用协议与数据包分析实验(Wireshark)
计科210X 甘晴void 202108010XXX
一、实验目的
通过本实验熟练掌握Wireshark的操作和使用学习对HTTP协议进行分析。
二、实验内容
2.1 HTTP 协议简介
HTTP 是超文本传输协议 Hyper Text Transfer Protocol的缩写用于WWW 服务。 1HTTP 的工作原理 HTTP 是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层传输协议但 HTTP 协议是无状态的。也就是说每个事务都是独立地进行处理。当一个事务开始时就在web客户和服务器之间建立一个TCP 连接而当事务结束时就释放这个连接。此外客 户可以使用多个端口和和服务器 80 端口之间建立多个连接。其工作过程包括以下几个阶段。 ① 服务器监听TCP 端口 80以便发现是否有浏览器 客户进程向它发出连接请求 ② 一旦监听到连接请求立即建立连接。 ③ 浏览器向服务器发出浏览某个页面的请求服务器接着返回所请求的页面作为响应。 ④ 释放TCP 连接。 在浏览器和服务器之间的请求和响应的交互必须遵循HTTP 规定的格式和规则。 当用户在浏览器的地址栏输入要访问的HTTP 服务器地址时浏览器和被访问HTTP 服 务器的工作过程如下 ① 浏览器分析待访问页面的URL 并向本地DNS 服务器请求IP 地解析 ② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器 ③ 浏览器与HTTP 服务器建立TCP 连接若连接成功则进入下一步 ④ 浏览器向HTTP 服务器发出请求报文 含GET 信息请求访问服务器的指定页面 ⑤ 服务器作出响应将浏览器要访问的页面发送给浏览器在页面传输过程中浏览 器会打开多个端口与服务器建立多个连接 ⑥ 释放TCP 连接 ⑦ 浏览器收到页面并显示给用户。
2HTTP 报文格式 HTTP 有两类报文从客户到服务器的请求报文和从服务器到客户的响应报文。图 5.46 显示了两种报文的结构。 在图1.1 中每个字段之间有空格分隔每行的行尾有回车换行符。各字段的意义如下
① 请求行由三个字段组成 方法字段最常用的方法为 “GET”表示请求读取一个万维网的页面。常用的方法还有 “HEAD指读取页面的首部”和“POST请求接受所附加的信息 URL 字段为主机上的文件名这时因为在建立TCP 连接时已经有了主机名 版本字段说明所使用的HTTP 协议的版本一般为 “HTTP/1.1” ② 状态行也有三个字段 第一个字段等同请求行的第三字段 第二个字段一般为 “200”表示一切正常状态码共有41 种常用的有301 网站已转移400服务器无法理解请求报文404服务器没有锁请求的对象等 第三个字段时解释状态码的短语 ③ 根据具体情况首部行的行数是可变的。请求首部有Accept 字段其值表示浏览器 可以接受何种类型的媒体Accept-language其值表示浏览器使用的语言User-agent 表明可用的浏览器类型。响应首部中有Date、Server、Content-Type、Content-Length 等字段。在请求首部和响应首部中都有 Connection 字段其值为Keep-Alive 或 Close表示服务器在传送完所请求的对象后是保持连接或关闭连接。 ④ 若请求报文中使用 “GET”方法首部行后面没有实体主体当使用 “POST”方法时附加的信息被填写在实体主体部分。在响应报文中实体主体部分为服务器发送给客户的对象。 图1.2 和图1.3显示了捕获的HTTP 请求和响应报文结合上面的介绍请自己分析和体会。
2.2实验环境与说明
1实验目的 在PC 机上访问Web 页面截获报文分析HTTP 协议的报文格式和HTTP协议的工作过程。 2实验设备和连接 本地实验室环境无须设备连接 注意请通过访问可以连接的WWW 站点或使用IIS 建立本地WWW 服务器来进行实验。 3实验分组 每四名同学为一组每人一台计算机独立完成实验。
2.3实验步骤
步骤1在PC 机上运行Wireshark开始截获报文 步骤2从浏览器上访问Web 界面(http://csee.hnu.edu.cn)。打开网页待浏览器的状态栏出现 “完毕”信息后关闭网页。
步骤3停止截获报文将截获的报文命名为http-学号保存。
分析截获的报文回答以下几个问题 1综合分析截获的报文查看有几种HTTP 报文
有TCP,DNS,ARP,HTTP,SSL,ICMPV6,TLSv1.3等报文2在截获的HTTP 报文中任选一个HTTP 请求报文和对应的 HTTP 应答报文仔细分析它们的格式填写表1.1 和表1.2。
▲请求报文截图
表1.1 HTTP 请求报文格式
方法GET
版本HTTP/1.1
URL /favicon.ico
首部字段名字段值字段所表达的信息Hostcsee.hnu.edu.cn接收请求的主机名Connectionkeep-alive连接User-AgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36表明可用的浏览器类型这里使用的是GoogleChrome浏览器。Acceptimage/avif,image/webp,image/apng,image/svgxml,image/,/*;q0.8描述接收响应数据的数据类型q表示相对质量因子指示接收数据类型的优先级Refererhttp://csee.hnu.edu.cn/提供访问来源信息即从那里来到的这个页面Accept-Encodinggzip, deflate表示客户端可处理的压缩编码Accept-Languagezh-CN,zh;q0.9接收的语言类型
▲回复报文截图 表1.2 HTTP 应答报文格式
版本HTTP/1.1
状态码200
短语OK
首部字段名字段值字段所表达的信息DateThu, 12 Oct 2023 05:23:46 GMT响应时间Server*********服务器应用程序X-Frame-OptionsSAMEORIGIN表示该页面可以在相同域名页面的frame中展示即可以在同域名页面的frame中嵌套Cache-Controlno-store指定不缓存响应表明资源不进行缓存Pragmano-cache在 HTTP/1.1 协议中它的含义和 Cache-Control:no-cache 相同ExpiresThu, 01 Jan 1970 00:00:00 GMT过期时间Content-Typeimage/gif;charsetUTF-8实体的内容类型Content-Length0实体的字节大小Set-CookieJSESSIONIDB3F69D4683D77B4FA0BBD8B423973CED; Path/; HttpOnlycookie值Keep-Alivetimeout5, max99持续连接的参数ConnectionKeep-Alive建立持续链接Content-Languagezh-CN实体的语言
3分析在截获的报文中客户机与服务器建立了几个连接服务器和客户机分别使用 了哪几个端口号
★菜单栏“编辑”“首选项”“外观”“列”中添加两项就可以查看端口和端口号了。这一步灵感来源于https://blog.csdn.net/h1580824951/article/details/120333571 按照以上方式可得到所有HTTP报文对应的端口号 答案如下
客户机与服务器建立了7个连接
服务器使用的都是端口号80
用户机使用了端口号51900520045200852017520195201852032
其中三次使用52008是TCP的三次握手4 综合分析截获的报文理解HTTP 协议的工作过程将结果填入表1.3 中。
实际上由于我的页面打开初始是www.baidu.com所以上面的初始一部分实际上在跟www.baidu.com进行通讯。我略去这一过程只关注与http://csee.hnu.edu.cn进行通讯的过程。
注意到这里报文类型实际上也是一个需要关注的点故加入这一列。另由于端口过多只关注部分端口尤其是端口52019另外的52108、52107与这个类似的连接与断开。
HTTP客户机端口号HTTP服务机端口号所包括的报文号报文类型步骤说明585085310337DNS请求报文535850810352DNSDNS响应报文返回域名对应的IP地址520088010477TCPSYN报文请求建立与服务器的连接805200810479TCPSYN ACK报文允许客户与服务器建立连接520088010480TCP对SYN ACK的确认连接已建立520088010481HTTP对网页的请求报文805200810488HTTP响应报文520198013629HTTP请求报文805201913707HTTP响应报文520198013708TCPACK报文805201913709TCPFIN ACK报文服务端发的第一个释放连接的请求520198013710TCPACK报文客户端给服务端回应确认消息520198013711TCPFIN ACK报文客户端发给服务端释放连接的请求805201913727TCPRST报文本来应该是ACK表示服务端发确认消息这里是连接突然终止了
上面只重点列出了一个TCP连接的建立和释放的过程其他两个连接是类似的以上报文体现了HTTP的工作过程。
特别需要指出的是典型的关闭请求有时由客户端发起中断连接。但在这里的关闭请求由服务端发起即http://csee.hnu.edu.cn主动发起并请求中断TCP连接。
★中间解题过程与截图如下
DNS部分略
TCP三次握手建立连接 520175201852019端口的结束报文 52019端口RST报文 52019端口正常传输 52019端口四次挥手中的前三次 知识补充三次握手与四次挥手
三次握手 四次挥手 最后的四次挥手原理讲解可以参考如下的讲解
https://blog.csdn.net/weixin_41033105/article/details/123861500
https://blog.csdn.net/m0_52650621/article/details/127797022
三次握手
第一次握手这是客户端发起给服务器的报文用于请求建立连接。
第二次握手这是服务器回复给客户端的报文用于确认并同意连接请求。
第三次握手是客户端发给服务器的是对上一个同意连接请求的确认。
四次挥手
第一次挥手当数据传输首先结束的端比如客户端会率先发起结束断开连接的请求。
第二次挥手对上一个断开连接请求的报文进行确认。并同时停止接受数据。
第三次挥手服务器端也结束数据发送了所以也会发起一个断开连接的请求。
第四次挥手是客户端对服务器断开连接请求的进行确认。