HTTP协议分析

HTTP(HyperText Transfer Protocol,超文本传输协议),是Web服务器和客户端之间进行数据传输的规则。

HTTP请求方法

HTTP请求方法

HTTP工作流程

(1)客户端通过TCP三次握手与服务器建立连接

(2)TCP建立连接成功后,向服务器发送HTTP请求。

(3)服务器收到客户端的HTTP请求后,将返回应答,并向客户端发送数据

(4)客户端通过TCP四次挥手,与服务器断开TCP连接。

HTTP协议本身是无状态无连接的,无状态是指它对事务的处理没有记忆功能。

持久连接与非持久连接

非持久连接就是每个TCP连接只用于传输一个请求消息和一个响应消息。HTTP/1.0默认使用的是非持久连接

持久连接是指服务器响应后,连接继续打开,同一对客户端/服务器之间的后续请求和响应都可以通过这个连接继续请求。持久连接又分为不带流水线和带流水线两种方式。不带流水线,客户端只有在收到请求的应答后才发出新的请求。流水线客户端每碰到一个引用就立即发出一个连接,效率要高.HTTP/1.1默认使用带流水线的持久连接。

HTTP请求报文格式

HTTP请求报文格式
(1)请求行由3部分组成,分别为请求方法(如GET、POST等)、URI以及协议版本,常见的协议版本有HTTP/1.1

(2)请求头部由“关键字: 值”对组成

(3)空行,这一行表示请求头部结束,接下来为请求正文

(4)请求正文内容,如以POST方式提交的表单数据

HTTP响应报文格式

HTTP响应报文格式
(1)状态码为3位数字,由1、2、3、4、5开头。其中,2开头的指响应成功;3开头的指重定向;4开头的指客户端错误;5开头的指服务端错误。

200:响应成功

400:错误的请求,发送的HTTP请求不正确

404:表示文件不存在

500:表示服务器内部错误

(2)响应头部

(3)空行

(4)响应正文,最常见的为HTML网页

HTTP的头域分为4种,为请求头域、响应头域、通用头域和实体头域。

捕获http数据包

由于很多PC端的网页都https加密了,所以捕捉不到相应的请求动作。这里我们使用手机客户端应用来抓包,举例:我们抓安卓手机上的APP–百度贴吧的http数据包。主要抓的是一个登陆操作的数据包。

分析GET方法的数据包

http-get

前3个数据包是TCP的三次握手。第4个数据包则是客户端向服务器发送的HTTP请求包。

选中数据包,右键Follow -> TCP Stream,请求包和响应包的详细内容:
在这里插入图片描述

通用头域Connection 表示是否需要持久连接,Keep-Alive表示持久连接

实体头域Content-Type表示实体数据的类型

分析POST方法的数据包

http-post

选中数据包,右键Follow -> TCP Stream,请求包和响应包的详细内容:
post

一般都是分析数据包首部信息,其实请求报文的正文内容也有值得分析的地方,尤其是POST数据请求包中,可能含有用户提交的个人信息。

比如,我们看一下bdusstoken,它代表的含义是百度用户token,那么其中就有用户名。

可用一条通用规则提取出用户名

bdusstoken@P(-1::0x424a4351:: P(21::0x41414141 :b:))

注:P是我自己写的抽象“提取方法”,格式为P(begin:length:endwith:method:P)

    begin为起始位置,负数表示从尾部反向提取,-1指最后一个字符;

    length为提取长度,可省略

    endwith表示结束字符串,8个字符,一个字符1B

    method表示编码方式,如 b表示Base-64编码

    P表示可嵌套提取方法

在这里插入图片描述

提取到的部分为 “cnp4dzAz”,这里我的登录用户名是"rzxw03"

这是经过Base64编码的值,找一个可以进行解码的网站,验证下我们提取的对不对。

在这里插入图片描述

可见,是对的,至于为什么这样可以,这是秘密,哈哈哈哈哈哈哈哈。HTTP就到这里了,喜欢点个赞吧。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wsws100

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值