网络协议与攻击模拟_16HTTP协议
1、HTTP协议结构
2、在Windows server去搭建web扫描器
3、分析HTTP协议流量
一、HTTP协议
1、概念
HTTP(超文本传输协议)用于在万维网服务器上传输超文本(HTML)到本地浏览器的传输协议
基于TCP/IP(HTML文件、图片、查询结构等)
2、万维网
- 采用C/S架构
- 客户机通过浏览器去请求,从而在浏览器上就可以看到对应图形界面。浏览器/服务器(B/S)
3、万维网服务的软件
- windows server IIS(Windows平台)
- apache(多平台)
- tomcat(多平台)
- nginx(多平台)
- ……
二、HTTP工作原理
1、工作原理
- 在客户端使用浏览器通过URL向HTTP服务器发送请求
- URL(统一资源定位符),由协议、主机和端口及文件名和路径三部分组成
- web服务器根据收到的请求直接向客户机响应信息
- 如果页面不存在的话,会报404错误提示;有的页面会做跳转,如下图中访问了一个不存在的地址,提示“页面没有找到,5秒钟之后会带您进入新浪的首页”。
- 如果页面不存在的话,会报404错误提示;有的页面会做跳转,如下图中访问了一个不存在的地址,提示“页面没有找到,5秒钟之后会带您进入新浪的首页”。
- 针对于HTTP默认的端口号是80端口,默认端口可以改(会影响客户机的访问,建议改为其他非标准端口)
2、交互过程
3、注意事项
- HTTP协议是无连接的:“无连接”的含义是限制每次连接只处理一个请求,之后在请求的时候都需要重新建TCP三次握手,虽然每次请求都需要重新建立TCP三次握手,但是这种方式可以节省传输时间,不会存在客户端没有请求了但服务器还保持着的资源占用问题。
- HTTP是独立的:只要客户端和服务器知道如何去处理数据内容,任何类型的数据都可以通过HTTP发送,客户端及服务器指定使用场合的MIME-type(消息内容类型)
- HTTP是无状态的:没有记忆能力。“无状态”类似于UDP,如果后续的处理需要前面的信息,就必须重传,每次连接传输的数据量比较大。
举个例子:某些内容需要登录才能访问,如用户名和密码不会被记录,造成的结果就是后续你要访问登录的内容的时候,就必须把前面的内容要重传一下,这就引入了Session和Cookie。
三、windows server搭建IIS服务
1、新建网站
关掉默认站点,然后添加网站;找到D盘下面建woniu网站的目录及文件。
添加网站
、
启动后就可以访问了
字符编码有点问题,改成gb2312
刷新一下就OK了
2、winsahrk抓包分析
(1)第一次分析
打开本机的winshark然后浏览器访问下
247.1是物理的Vmnet1网卡的IP地址,前面是和server的三次握手
追踪流
这里就是HTTP协议了,然后我们看下HTTP里面的报文,这里是请求的头部内容。
这里响应是304,NOT Modify
接着这里做了一个确认,接着又重新请求
接着又重新请求
接着是一个404响应
接着客户机确认了一下
下面都是TCP的keep Alive,keep Alive是持久性连接,客户机向服务器发起持久性连接请求
服务器确认客户机的KeepAlive请求
其实最好的方式是去追踪TCP流
在这里比较好看一点。
其实这里是有问题的,404Not Found
(2)第二次分析
修改网页源码
重启网站,重新抓包,现在就对了
新建网站应该重启一下,我们之前访问的时候虽然浏览器是访问到了页面的,但是根据抓包实际上是有个404 Not Found的。
去追踪一下TCP流,去看这里
GET请求,服务器直接响应了页面,页面内容就是我们网站的index.html的源码
下面就是持久性连接,它这里Connection携带的是keep-alive持久性连接
看到这里一直没有TCP的四次挥手
当把这个页面关掉之后,重新访问,这里是RST重连
所以从这里看,HTTP协议很简单就一个请求一个响应
但是有数据库就不一样了,比如一些表单也不一样,你要输用户名密码的时候就不一样了。
四、HTTP报文
1、请求报文
请求报文:了解常见的请求方法以及一些字段的含义
- 请求头
- 请求方法 / 协议/协议版本
- Host:主机
- Connection:keep-alive持久性连接
因为HTTP是无状态的,请求一个响应一个,比如说我刚登陆用户名和密码,服务器响应用户名没有任何问题,此时就可以访问付费资源了。你马上又要访问付费资源的时候,服务器提示你输入用户名和密码,这个时候就进入了一种死循环吗,服务器不停的让你输用户名和密码,账号和密码都输入成功了吗,也确认了没有问题,但这个时候就是访问不了付费资源。这个时候采用持久性连接,当你输入一次用户名和密码登录后,服务器就记住了并保持登录的状态。 - Upgrade-Insecure-Request
现在浏览器都采用安全机制,可以报警,加入这个字段,发送请求时可以升级不安全的请求。因为我们采用的还是HTTP协议,其实就是告诉浏览器这里是可以升级不安全的请求的。 - User-Agent:客户端的信息,分为两块,一块是浏览器的信息,一块是操作系统的信息。
- Accept:请求头中的内容,代表用户端可以处理的媒体类型,说白了就是告诉服务器我可以处理的媒体类型有哪些。
- Accept-Encoding:表示它的压缩方法
- Accept-Language:语言
2、响应报文
响应报文:知道状态码及其含义
- 响应头部
- 协议类型/版本 状态码
- Content-Type:text/html与请求报文的Accept相对应表示接收内容的类型
- Last-Modified:上次修改的日期
- Accept-Ranges:bytes
- ETage:被请求变量的实体
- Server:服务器的信息
- Date:日期
- Content-Length:接收内容的长度
- 响应内容
- 响应状态码
- 1XX 表示服务器收到请求
- 2XX 表示操作成功
- 3XX 表示重定向(访问页面不存在服务器会根据重定向跳转到相关页面)
- 4XX 表示用户端出错
- 5XX 表示服务器错误
相关文章:

网络协议与攻击模拟_16HTTP协议
1、HTTP协议结构 2、在Windows server去搭建web扫描器 3、分析HTTP协议流量 一、HTTP协议 1、概念 HTTP(超文本传输协议)用于在万维网服务器上传输超文本(HTML)到本地浏览器的传输协议 基于TCP/IP(HTML文件、图片、查询结构等&…...
叙事弧基础
原文:MasterClass. 2020. Learn About Narrative Arcs: Definition, Examples, and How to Create a Narrative Arc in Your Writing - 2021. https://www.masterclass.com/articles/what-are-the-elements-of-a-narrative-arc-and-how-do-you-create-one-in-writin…...
python从入门到精通(二十):python的exe程序打包制作
python的exe程序打包制作 python打包的概念python打包的模块导入模块安装验证基本语法命令参数文件夹模式单文件模式资源嵌入exe更改图标启动画面(闪屏)禁用异常提示 python打包的概念 将普通的*.py程序文件打包成exe文件。exe文件即可执行文件…...

three.js 细一万倍教程 从入门到精通(一)
目录 一、three.js开发环境搭建 1.1、使用parcel搭建开发环境 1.2、使用three.js渲染第一个场景和物体 1.3、轨道控制器查看物体 二、three.js辅助设置 2.1、添加坐标轴辅助器 2.2、设置物体移动 2.3、物体的缩放与旋转 缩放 旋转 2.4、应用requestAnimationFrame …...

电路设计(16)——纪念馆游客进出自动计数显示器proteus仿真
1.设计要求 设计、制作一个纪念馆游客进出自动计数显示器。 某县,有一个免费参观的“陶渊明故里纪念馆”,游客进出分道而行,如同地铁有确保单向通行的措施。在入口与出口处分别设有红外检测、声响、累加计数器装置,当游人进&#…...
Python数学建模之回归分析
1.基本概念及应用场景 回归分析是一种预测性的建模技术,数学建模中常用回归分析技术寻找存在相关关系的变量间的数学表达式,并进行统计推断。例如,司机的鲁莽驾驶与交通事故的数量之间的关系就可以用回归分析研究。回归分析根据变量的…...

单片机学习笔记---DS18B20温度传感器
目录 DS18B20介绍 模拟温度传感器的基本结构 数字温度传感器的应用 引脚及应用电路 DS18B20的原理图 DS18B20内部结构框图 暂存器内部 单总线介绍 单总线电路规范 单总线时序结构 初始化 发送一位 发送一个字节 接收一位 接收一个字节 DS18B20操作流程 指令介…...

【网络】WireShark过滤 | WireShark实现TCP三次握手和四次挥手
目录 一、开启WireShark的大门 1.1 WireShark简介 1.2 常用的Wireshark过滤方式 二、如何抓包搜索关键字 2.1 协议过滤 2.2 IP过滤 编辑 2.3 过滤端口 2.4 过滤MAC地址 2.5 过滤包长度 2.6 HTTP模式过滤 三、ARP协议分析 四、WireShark之ICMP协议 五、TCP三次握…...

开源免费的Linux服务器管理面板分享
开源免费的Linux服务器管理面板分享 一、1Panel1.1 1Panel 简介1.2 1Panel特点1.3 1Panel面板首页1.4 1Panel使用体验 二、webmin2.1 webmin简介2.2 webmin特点2.3 webmin首页2.4 webmin使用体验 三、Cockpit3.1 Cockpit简介3.2 Cockpit特点3.3 Cockpit首页3.4 Cockpit使用体验…...
leetcode算法-位运算
位运算,直接在二进制上进行的按位操作,位运算的种类如下: 1.按位异或^:异或的含义是操作的两位不同,则结果为1,相同则结果为0,所以两个相同的数异或,结果应该是0,3^3的结果是0,3^4的…...
「MySQL」约束
概述 分类 约束描述关键字非空约束限制该字段的数据不能为 nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY默认约束保存数据时,如果未指定该字段的值,则采…...

C语言:详解操作符(下)
上一篇链接:C语言:详解操作符(上)摘要: 在上篇文章中,我们已经讲过位操作符等涉及二进制的操作符,这些有助于帮助我们后期理解数据如何在计算机中运算并存储,接下来本篇将更多的讲述…...

Vue3.0(六):VueX 4.x详解
Vuex4状态管理 什么是状态管理 在开发中,我们的应用程序需要处理各种各样的数据,这些数据需要保存在应用程序的某一个位置,对于这些数据的管理,就是 状态管理目前前端项目越来越复杂,多组件共享同一数据的状态很常见…...
突破编程_C++_面试(基础知识(13))
面试题45:C中的字符串如何存储 在C中,字符串可以通过多种方式存储,但最常见和推荐使用的方式是通过 std::string 类,该类位于 <string> 头文件中。std::string 是一个类模板的实例,通常用于存储字符数组&#x…...

掌握C语言文件操作:从入门到精通的完整指南!
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog 1. 什么是文件 文件其实是指一组相关数据的有序集合。这个数据集有一个名称&a…...

JavaEE作业-实验二
目录 1 实验内容 2 实验要求 3 思路 4 核心代码 5 实验结果 1 实验内容 实现两个整数求和的WEB程序 2 实验要求 ①采用SpringMVC框架实现 ②数据传送到WEB界面采用JSON方式 3 思路 ①创建一个SpringMVC项目,配置好相关的依赖和配置文件。 ②创建一个Con…...
2月8号作业
Sqlite3系统命令 .quit 退出数据库 .exit 退出数据库 .help 显示帮助信息,获取所有系统命令 .table 查看当前数据库下的所有表格 .schema 查看表的结构 Sqlite3语句 创建表格: create table 表名 (字段名 数据类型, 字段名 数据类型); create table if…...

08:K8S资源对象管理|服务与负载均衡|Ingress
K8S资源对象管理|服务与负载均衡|Ingress DaemonSet控制器污点策略容忍容忍污点 其他资源对象Job资源对象 有限生命周期CronJob资源对象 集群服务服务自动发现headless服务 实现服务定位与查找 服务类型 Ingress插件 发布服务的方式 DaemonSet控制器 Da…...

HarmonyOS 横屏调试与真机横屏运行
我们有些程序 需要横屏才能执行出效果 我们在预览器上 点击如下图指向出 就进入一个横屏调试了 但 我们真机运行 依旧是竖着的 我们如下图 找到 module.json5 在 abilities 下面 第一个对象 最下面 加上 "orientation": "landscape"然后 我们再真机运…...

Javaweb基础-tomcat,servlet
一.配置文件基础: properties配置文件: 由键值对组成 键和值之间的符号是等号 每一行都必须顶格写,前面不能有空格之类的其他符号 xml配置文件:(xml语法HTML语法HTML约束)xml约束-DTD / Schema DOM4…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...