目录

前言

一、代理服务器的介绍

二、HTTP抓包

三、HTTPS抓包

四、Map请求重定向

五、Rewrite修改请求内容



前言

最近在做移动端页面的开发,在开发过程中发现有些功能必须要在手机上调试,例如微信授权的功能等,一开始是采用打包放到服务器上的方式实现,后面发现这样调试起来太麻烦而且效率太低了,于是就去了解了通过代理服务器的方式进行调试,以下是使用下来的一些总结


一、代理服务器的介绍

抓包工具

  • 展示http、https请求,辅助开发调试
  • 拦截客户端和web服务器之间的所有请求

常见的代理服务器有以下两种,由于Charles是支持多平台的,所以下面我们的介绍都是在charles下进行的:

二、HTTP抓包

1.移动端配置

点击手机连接的Wi-Fi --->HTTP代理,配置代理

  • 服务器/主机名:填入电脑的ip地址
  • 端口:我的手机默认是8080

2.使用charles开始抓包:

当我们去抓取https请求的页面时会发现无法直接解析HTTPS请求,原因是加密请求解析并没有被开启,接着我们往下看:

三、HTTPS抓包

1.添加要解析的域名列表:

  • 菜单栏Proxy  --->  SSL Proxying Settings,添加完后重启charles

  • 配置完后重新抓包,然后手机重新访问对应的页面会收到以下警告

这是由于网站证书不受信任导致的,我们先来简单了解以下https协议的加密机制

HTTPS协议

  • HTTPS=HTTP+SSL(Secure Sockets Layer)在http协议的基础上添加了一个SSL层
  • 公钥加密法:客户端向服务端索取一个公钥,这个公钥是存放在客户端里的,使用的时候客户端使用公钥加密请求的信息,服务端收到加密后的请求,用存放在服务器上的私钥来解析这个请求,服务端给客户端的公钥有一个载体,就是数字证书,公钥是放在数字证书里给到客户端的,如果证书是可信的,这个公钥就是有效的

Charles代理HTTPS请求的机制如下图:

charles会动态给每个服务器生成一个由charles根证书签发的一个数字证书,所以请求产生时客户端收到的不是服务端的原始证书,而是charles签发的证书,原始证书是保存在charles上的,客户端和charles之间的通讯是由charles公钥来加密的,而charles和原始服务器之间的通讯是由服务器公钥加密的

因为我们原本信任的是服务器的证书,charles动态生成的证书在我们的设备上是不被信任的,所以会产生上面所说的警告,要移除这个警告则需要如下处理:

信任Charles根证书:

  • 在移动端用浏览器访问https://chls.pro/ssl  下载证书描述文件
  • 安卓:直接安装即可
  • ios:在设置-通用-描述文件与设备管理 中安装证书,然后开启设置-通用-关于本机-针对根证书启用完全信任

设置完后再进行抓包可看到以下内容:

四、Map请求重定向

Map Local/Map Remote使用情况:

  • 生产环境代码打包压缩后不利于debug
  • 调试时不方便频繁发布代码

Map Local:将某请求重定向至本地某文件

Map Remote:将某请求重定向至另外一个请求(可将测试环境的代码重定向到本地的代码)

  • 可将生产环境的代码通过重定向功能替换为本地代码

五、Rewrite修改请求内容

  • 可作用于:requests & responses
  • 可修改:header、host、path、url、param、body等等
  • 采用新增、替换的形式

示例:在生产环境注入Vconsole脚本:

移动端代码调试-使用代理服务器进行调试相关推荐

  1. ceph vstart调试client端代码

    因为OSD端有OSD进程,MON有MON进程,MDS有MDS进程.所以在gdb的时候可以直接attach这些进程号进程调试.或者在代码中直接添加打印.但是对于client端的代码没有一个具体的进程来进 ...

  2. 在iOS端如何使用Charles用作http调试

    转:http://blog.csdn.net/messageloop3/article/details/9966727 在iOS端如何使用Charles用作http调试 After noticing ...

  3. (五)stm32工程代码HardFault异常查错调试方法

    (五)stm32工程代码HardFault异常查错调试方法 参考文章: (1)(五)stm32工程代码HardFault异常查错调试方法 (2)https://www.cnblogs.com/zhan ...

  4. python学习-代码调试(通过print调试、通过pdb调试、通过编译器调试(断点调试))

    文章目录 通过print调试 通过pdb调试 通过编译器调试(断点调试) 通过print调试 首先我这里写了一段代码,保存列表中的偶数,然后返回列表,在函数执行后,我对函数结果进行打印. 见代码: l ...

  5. Windows GUI代码与Windows消息问题调试利器

    Windows GUI代码与Windows消息问题调试利器 记得很久前有这么一种说法: 人类区别于动物的标准就是工具的使用.同样在软件开发这个行业里面,对于工具的使用也是高手和入门级选手的主要区别, ...

  6. 迷你播放器--第一阶段(7)--安全攻防第一战--对抗反编译,代码混淆和对抗动态调试

    迷你播放器--第一阶段(7) 安全攻防第一战--对抗反编译,代码混淆和对抗动态调试; 本文章为CSDN作者原创,转载请保留出处:http://blog.csdn.net/lrs0304/article ...

  7. JAVA打车拼车系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA打车拼车系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA打车拼车系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开 ...

  8. java毕业生设计信用卡增值业务系统小程序用户端计算机源码+系统+mysql+调试部署+lw

    java毕业生设计信用卡增值业务系统小程序用户端计算机源码+系统+mysql+调试部署+lw java毕业生设计信用卡增值业务系统小程序用户端计算机源码+系统+mysql+调试部署+lw 本源码技术栈 ...

  9. JAVA智慧防疫上报系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA智慧防疫上报系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA智慧防疫上报系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S ...

最新文章

  1. 聚焦触宝反侵权事件:中国创业者用什么护航海外市场大门
  2. windows安装pycocotools错误:cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  3. WPF中的Pack URI
  4. docker镜像底层是文件联合系统
  5. Qt creator5.7 OpenCV249之双边滤波(含源码下载)
  6. 快速掌握用python处理Excel
  7. OpenCV-最值计算cv::minMaxIdxcv::minMaxLoc
  8. maven内存不足:Unexpected error occurred: Not enough memory to allocate buffers for rehashing Java heap
  9. dede后台验证码一直错误的处理方法
  10. MySQL安装与卸载教程
  11. 【数学建模】灰色模型
  12. 中国行政区划编码-省市县镇村
  13. 华为 M5680t对HGU ONU配置指导
  14. 计算机术语access,计算机英语词汇术语:access(存取,访问)
  15. 【JavaEE】网络编程之TCP套接字、UDP套接字
  16. 美国计算机研究生留学签证时间,美国大学研究生录取结果,美国研究生院录取时间和流程一览!附2021秋季截止日期...
  17. PAT甲级真题目录(按题型整理)(转自柳神)
  18. 基于微信小程序的高校体育场地预约管理系统
  19. 固定资产盘点的问题及解决方案,云呐如何做固定资产盘点
  20. 如何防止CDN防护被绕过

热门文章

  1. cad怎么选择一个对象打散vba_求助如何读取对应CAD文件名的代码,以及如何提取CAD组码组值的方式。...
  2. 回收站文件恢复,分享4个巧妙解决方法!
  3. java情话代码,单身狗福利!利用java实现每天给对象发情话,脱单指日可待!
  4. android 对特殊符号(表情符号)进行编码解码
  5. java如何创建一个dao类_java – 如何设计一个DAO类?
  6. 小度音箱对接之DuerOS开放平台功能分析
  7. Microsoft Teams的 CAA20002错误
  8. 基于 CoreText 的排版引擎:基础
  9. lol最强最高输出的adc_英雄联盟:谁才是输出最高的ADC,从输出量上来讲,他才是第一...
  10. tomcat启动不起来