• Android抓包分析-fiddler版


    本文介绍的是如何使用Fiddler工具抓取Android应用的HTTP协议的数据包

    工具

    • Genymotion模拟器
    • 笔记本电脑一台(Win7)
    • Fiddler(v4.6.2),下载地址:http://pan.baidu.com/s/1sjW9geT

    环境配置

    第一步:将笔记本电脑连接网络(有线和无线均可)

    第二步:在Fiddler中设置“允许远程连接”和“默认端口”

    第三步:打开“控制面板”-“网络和Internet”-“网络连接”,选中当前的活动连接,找到局域网IP地址。

    第四步:设置Genymotion中的模拟器代理IP地址为192.168.1.8(上一步记录的IP),设置完后记得保存

    HTTP请求:

    1.  请求处理模型

        

    2. 请求报文格式

      请求行、通用信息头、请求头、实体头、报文主体

      如下:

      

      请求格式为

        Method【分隔符】Request-URI【分隔符】HTTP-Version【换行】

        其中:Method是请求方法,类似的方法有GET、POST、DELEFT、PUT、HEAD...常用的方法是GET、POST,GET和POST区别在于:

         1、GET通过URLParams传值,POST通过报文体传值(通过Content-Type请求头分辨内容类型,常用的有:application/json,text/plain,text/html,imagepng...)

         2、GET传递的值不能大于2kb,POST理论上不限制大小,实际大小和服务器配置有关。

         3、GET的参数很容易被看见故安全性较低,POST参数不容易被看见故安全性较高(一般用于传输用户的身份信息,常用表单、登录等)

      常见的请求字段的含义:

        1. HOST: 该请求的目标主机

        2. ACCEPT: 客户端可接受的内容类型

        3. USER-AGENT: 用户代理,一般是浏览器的信息(很多统计网站如cnzz, 51la, 就是用这个搜集用户访问数据)

        4. ACCEPT-ENCODING: 可接受的编码(Android端就是用这个实现gzip压缩,优化网络请求,推荐)

        5. REFRER:来源,该请求是哪个页面发起的(一般网站用这个字段实现防图片盗链,只要REFRER中的主机不是本网站,挂断请求)

    3. 响应报文的格式

         状态行   通用信息头   响应头   实体头   报文主体

         状态行由状态码和原因分析两部分构成。其中,状态码由3位数字组成,表示请求是否被理解或被满足,用来至此自动操作;原因分析是对原文的状态码作简洁的描述,用来供用户使用。

         响应报文中的状态码在进行Web应用性能测试的过程中经常遇到,说明如下:

         1XX:信息响应类,表示接收到请求并且继续处理。

         2XX:处理成功响应类,表示动作被成功接收、理解和接收

         3XX:重定向响应类,表示为了完成指定的动作,必须接受进一步处理

         4XX:客户端错误,表示客户请求包含语法错误或不能正确执行

         5XX:服务端错误,表示服务器不能正确执行一个正确的请求

    4. 分析”卖座APP“的请求结构

    通过上述的配置,我们用Fiddler抓取到了Splash页面的请求:

    http://mobileif.maizuo.com/ver4/city/37/ADInfo?agentID=baidu&channelID=31&clientID=31&revision=4.2.5&agentID=baidu

    从该请求可以简单获取以下信息:

    1. 该请求使用的是POST, HTTP1.1

    2. 卖座接口启用了gzip优化网络请求

    3. 内容长度为211个字节,并且支持UTF-8

    本文待完善,如有问题,请多多指教。

  • 相关阅读:
    SVN配置文件详解
    让Linux开机运行命令
    find命令用法介绍
    关于js优化和css优化
    弹性盒布局、头尾固定中间部分自适应布局
    css样式重置(初始化)收集
    动态嵌套form,使用Stimulus Js库(前后端不分离)
    给Mac的Dictionary添加其他原装词典
    使用rvm关联ruby版本和rails版本。
    Rails6.0 Beta版本1: ActionText的简单使用
  • 原文地址:https://www.cnblogs.com/hoosway/p/5137204.html
Copyright © 2020-2023  润新知