网络协议与攻击模拟_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秒钟之后会带您进入新浪的首页"。
  • 针对于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 表示服务器错误
相关推荐
Felven21 小时前
盛科CTC8096端口速率40G切换10G配置
网络·40g·盛科·ctc8096·10g
難釋懷1 天前
Redis网络模型-IO多路复用-select方式
网络·redis·bootstrap
呉師傅1 天前
统信UOS如何安装本地打印机驱动以及URL查找网络打印机并安装驱动方法
运维·服务器·网络·windows·电脑
Ogcloud_oversea1 天前
SD-WAN 技术架构解析:控制平面与数据平面的解耦实践
运维·网络·网络协议·网络安全·信息与通信
树下水月1 天前
HTTPS 站点请求 HTTP的API 接口服务报错的问题
网络协议·http·https
XiYang-DING1 天前
【Java EE】 HTTP协议
java·http·java-ee
wangl_921 天前
Modbus RTU 与 Modbus TCP 深入指南-结束语
网络·网络协议·tcp/ip·tcp·modbus·rtu
small_white_robot1 天前
idek-2022 web 全wp——持续更新
开发语言·前端·javascript·网络·安全·web安全·网络安全
皮卡祺q1 天前
【Java网络编程核心-0】从OSI七层到TCP/IP模型深度解析(HTTP协议、TCP、UDP 、 IP协议)
网络·网络协议·tcp/ip·http·https·udp
老毛肚1 天前
循环网络神经模型基础快速入门
网络