实验十二 HTTP 协议分析实验

1.HTTP 协议简介
HTTP是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务。
(1)HTTP的工作原理
HTTP是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层传输协议,但 HTTP协议是无状态的。也就是说,每个事务都是独立地进行处理。当一个事务开始时,就在万维网客户和服务器之间建立一个TCP 连接,而当事务结束时就释放这个连接。此外,客户可以使用多个端口和和服务器 (80 端口)之间建立多个连接。其工作过程包括以下几个阶段。
① 服务器监听TCP 端口 80,以便发现是否有浏览器 (客户进程)向它发出连接请求;
② 一旦监听到连接请求,立即建立连接。
③ 浏览器向服务器发出浏览某个页面的请求,服务器接着返回所请求的页面作为响应。
④ 释放TCP 连接。
在浏览器和服务器之间的请求和响应的交互,必须遵循HTTP 规定的格式和规则。
当用户在浏览器的地址栏输入要访问的HTTP 服务器地址时,浏览器和被访问HTTP 服务器的工作过程如下:
① 浏览器分析待访问页面的URL 并向本地DNS 服务器请求IP 地解析;
② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器;
③ 浏览器与HTTP 服务器建立TCP 连接,若连接成功,则进入下一步;
④ 浏览器向HTTP 服务器发出请求报文 (含GET 信息),请求访问服务器的指定页面;
⑤ 服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览器会打开多个端口,与服务器建立多个连接;
⑥ 释放TCP 连接;
⑦ 浏览器收到页面并显示给用户。

(2)HTTP 报文格式
HTTP有两类报文:从客户到服务器的请求报文和从服务器到客户的响应报文。图 1 显示了两种报文的结构。

                    图1  HTTP 的请求报文和响应报文结构

在图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”方法是,附加的信息被填写在实体主体部分。在响应报文中,实体主体部分为服务器发送给客户
的对象。
图2 和图3显示了wireshark 捕获的HTTP 请求和响应报文,结合上面的介绍,请自己分析和体会。

                         图2 HTTP 请求报文示例

                         图3 HTTP 响应报文示例

2.实验环境与说明
(1)实验目的
在PC 机上访问RCMS 的Web 页面,截获报文,分析HTTP 协议的报文格式和HTTP 协议的工作过程。
(2)实验设备和连接
本地实验室环境,无须设备连接;
注意:请通过访问可以连接的WWW 站点或使用IIS 建立本地WWW 服务器来进行实验。
3.实验步骤
步骤1:在PC 机上运行wireshark,开始截获报文,为了只截获和我们要访问的网站相关的数据报,将截获条件设置为 “not broadcast and not multicast”;
步骤2:从浏览器上访问Web 界面,如http://202.202.43.125。打开网页,待浏览器的状态栏出现 “完毕”信息后关闭网页。
步骤3:停止截获报文,将截获的报文命名为http-学号保存。
分析截获的报文,回答以下几个问题:

1)综合分析截获的报文,查看有几种HTTP 报文?
答:有两种HTTP报文,分别是客户到服务器的请求报文和服务器到客户的响应报文。

2)在截获的HTTP 报文中,任选一个HTTP 请求报文和对应的 HTTP 应答报文,仔细分析它们的格式,填写表1 和表 2。

表1 HTTP 请求报文格式
方 法 GET 版 本 HTTP/1.1
URL http://www.baidu.com
首部字段名 字段值 字段所表达的信息
Connection Keep-Alive\r\n 表示是否保存socket连接为开放的通用头标
Accept /\r\n 表示浏览器可以接受何种类型的媒体
User-Agent Microsoft-CryptoAPI/6.1\r\n 表明可用的浏览器类型
Host www.download.windowsupdate.com\r\n 指定被请求资源的Internet主机和端口号
Accept-language zh-cn\r\n 表示浏览器使用的语言

表2 HTTP 应答报文格式
版 本 HTTP/1.1 状态码 304
短 语 Not Modified
首部字段名 字段值 字段所表达的信息
Date Mon, 28 Dec 2020 06:37:24 GMT\r\n 消息发送的时间
Last-Modified Mon, 12 Oct 2020 21:55:08 GMT\r\n 服务器上保存内容的最后修订时间
Server KNGX-3.0\r\n 确定实际被发送的资源是否一致
ETag “069559e2a0d61:0”\r\n 实体标签,用于请求HEAD的属性
Age 2676\r\n 表明实体从产生到现在经过的时间

3)分析在截获的报文中,客户机与服务器建立了几个连接?服务器和客户机分别使用了哪几个端口号?
答:客户机与服务器建立了1个tcp连接,服务器端口号为80端口,客户机端口号为50735。

4 )综合分析截获的报文,理解HTTP 协议的工作过程,将结果填入表3 中。

                             表3 HTTP 协议工作过程

HTTP 客户机端口号 HTTP 服务器端口号 所包括的报文号 步骤说明
50735 80 1648 发送SYN包,开始一次握手,建立连接
50735 80 1649 二次、三次握手,连接建立
50735 80 2101
客户机发起HTTP GET请求

50735 80 2102 客户机向服务器请求具体数据信息如服务器ip等
50735 80 3626 服务器应答,发送状态码
50735 80 3627 具体的请求数据发送
50735 80 3638 客户机发送FIN包,开始四次挥手,准备断开连接
50735 80 3639 进行四次挥手过程断开连接,或发送RST包强制断开

实验十二 HTTP 协议分析实验相关推荐

  1. 网络协议实验四 ARP 协议分析实验

    实验四 ARP 协议分析实验 2.2 ARP 协议分析实验 1.ARP 协议介绍 ARP 是地址解析协议 (Reverse Address Resolution Protocol)的缩写,负责实现从I ...

  2. 实验十二 AODV和DSR协议仿真实验

    无线网络技术教程第四版实验十二 AODV和DSR协议仿真实验 目录 无线网络技术教程第四版实验十二 AODV和DSR协议仿真实验 1 实验要求和目的 2 实验原理和背景 3 实验环境和模块 4 实验过 ...

  3. 实验十二、十三 配置PPP协议、配置Frame-relay协议

    实验十二     配置PPP协议 要求: 配置PPP协议,实现广域网连接.然后,分别采用PAP和CHAP进行验证,最后启用OSPF协议,实现局域网之间相互通信. 基础配置 为路由器R1.R2设置相应的 ...

  4. 实验二ARP协议分析

    "终究是玫瑰误了花期,而我也将你归还故里" 实验二ARP协议分析 1.arp命令(要用管理员启动命令行) 2.arp请求与应答 3.arp代理 4.免费arp 文中小鲨鱼是指Wir ...

  5. 计算机网络协议教案,计算机网络实验教案(6)网络协议分析-IP协议3.pdf

    计算机网络实验教案(6)网络协议分析-IP协议3.pdf (2页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机网络实验> ...

  6. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十二:串口模块① — 发送

    实验十二:串口模块① - 发送 串口固然是典型的实验,想必许多同学已经作烂,不过笔者还要循例介绍一下.我们知道串口有发送与接收之分,实验十二的实验目的就是实现串口发送,然而不同的是 ... 笔者会用另 ...

  7. 虚拟机dhcp服务器怎么检验,实验十二虚拟机上DHCP服务器的配置和验证.doc

    实验十二 虚拟机上DHCP服务器的配置与验证 一.实验目的 了解DHCP的基本概念和服务器的新特性 掌握DHCP服务器的安装与配置 掌握DHCP的运行方式 掌握DHCP客户机的设置 掌握ipconfi ...

  8. 计算机网络实验报告4icmp,实验04-ip、icmp协议分析

    实验04-ip.icmp协议分析 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机网络>实验报告实验:IP.ICMP ...

  9. 华中科技大学计算机与网络,华中科技大学计算机通信与网络实验报告-基于NS2的协议分析实验...

    华中科技大学计算机通信与网络实验报告-基于NS2的协议分析实验 (26页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 实验二基于NS2的协 ...

最新文章

  1. 【php增删改查实例】第十七节 - 用户登录(1)
  2. java读取服务器图片大小,SpringMVC中MultipartFile上传获取图片的宽度和高度详解
  3. rust怎么进入好友的房间_Rust基础知识-模块系统(上)
  4. Pycharm详细安装教程
  5. [MySQL]MySQL分区与传统的分库分表(精华)
  6. MS10-002紧急补丁将在美国太平洋时间上午10点左右发布
  7. 腾讯关系型数据库达成“双百”里程碑——6大企业级MySQL特性全面解析
  8. 43个PSD to XHTML,CSS教程
  9. TCMalloc小记【转】
  10. SCCM 2012 R2 从入门到精通 Part8 软件部署
  11. netcore 实现一个简单的Grpc 服务端和客户端
  12. vue文件在服务器上乱码,解决vue-pdf查看pdf文件及打印乱码的问题
  13. 4个快速美白牙齿小偏方
  14. 【报告分享】2021国民健康洞察报告-丁香(附下载)
  15. kaldi 学习笔记-三音素训练1(Decision Tree)
  16. 被修饰成单栋的倾斜摄影处理思路
  17. Eigenvalue of random matrix
  18. 论文解读:《基于注意力的多标签神经网络用于12种广泛存在的RNA修饰的综合预测和解释》
  19. 连接mysql的url是什么意思_URL是什么意思?
  20. 百度AI使用方案:黑白图片上色

热门文章

  1. hbase —— Dead Region Servers
  2. HTML/CSS 常用单词整理
  3. 给在读研究生的一封信
  4. 汽车自动驾驶级别分类
  5. Anaconda安装完python文件.py不显示黄蓝图标
  6. 计算机可以计算出十的一百次方吗,世界上最大的数字单位 古戈尔(1古戈尔等于10的100次方)...
  7. SpringCloud-11-解决[NACOS HTTP-GET] The maximum number of tolerable server reconnection errors has bee
  8. SMAA算法详解 - SMAADetectHorizontalCornerPattern
  9. 怎么从扫描的PDF文档/图片里提取文字
  10. 软件观念革命:交互设计精髓_UI设计师、交互设计师、产品经理必备软件技能之Sketch...