一:HTTP和HTTPS的区别

  HTTP是超文本传输协议,被用在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此HTTP协议不适合传输一些敏感信息,如:信用卡号,密码等支付信息。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL用于对HTTP协议传输的数据进行加密,从而诞生了HTTPS。

  两者主要区别:

    1.https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。个人网站、小网站没有必要用。

    2.http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议(https也不是绝对的安全,在黑客攻击,拒绝服务攻击,服务器劫持等方面几乎不起作用,最关键的SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样即可)。

    3.http和https使用的是完全不同的连接方式,用的端口也不一样,http是80,https是443。

    4.https的连接很简单,是无状态的,https协议是SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议。

    5.https连接缓存不如http高效,会增加数据开销和功耗,甚至已有的安全措施也因此会受到影响。

    6.https协议握手阶段比较费时。

二:Charles PC端截取HTTP和HTTPS协议请求(抓包实战)

      抓包前注意事项:

  

  

   

  抓包步骤:

  1.首选保证Charles开启,其它你想抓包的工具也开启,之后找到Charles的Proxy选项中的Start Recoding选项和Windows Proxy(mac电脑的是macOS Proxy),在进行测试的过程中发现不管我的win电脑勾选不勾选Windows Proxy,都可以抓取电脑上的包,经过跟几个搞测试的朋友交流,他们的都是正常的,所以少数服从多数,按不勾选Windows Proxy只能抓取手机上app的包,电脑上的包抓取不到。经过测试苹果电脑不勾选macOS Proxy的情况下是不能抓取电脑上的包的,勾选后就可以了。

  

  2.用浏览器打开你想要截取的网址

  

  3.对于HTTPS协议出现的中文乱码,Charles在电脑端安装charles ca证书,之后修改菜单项Proxy中Proxy Settings 和SSL Proxying Settings...选项,否则即使安装了charles ca证书依然不能正常显示

  下图为win电脑安装charles ca证书

  

  下图为苹果电脑安装charles ca证书

  

  

  

三:Charles 手机端(安卓,苹果机没有,以后补上)截取HTTP和HTTPS协议请求(包含手机端小程序抓包)

  1.Charles想要抓取手机上的包,就要进行一些配置,首先查看Charles所在电脑的ip,两种方式可以

  方式1:

              

  方式2:

    

  2.查看Charles的端口号,找到Proxy选项,选中Proxy Settings可以看到默认是:8888

  

  

  3.手机打开同一局域网下最好同网段(有些是同一局域网但是不在同一个网段,比如我的win是台式的,插的网线,手机是连的公司一个路由器的wifi,结果就连不上抓不了包,无奈我就用了苹果电脑跟手机连同一个wifi,一下就连上去了),设置手动代理,输入电脑的ip和Charles的端口号。结束后不要忘记更改手机代理,否则手机无法正常上网。

  

  

  4.安卓(vivoX6)手机端安装charles ca证书(前提条件是电脑端也要安装charles ca证书),首选根据charles中help选项中的提示,用手机浏览器(本人手机上选用的是uc浏览器),打开chls.pro/ssl (手机设置了charles代理,否则打开的网址提示错误)。下载后是pem文件,不能被我的手机识别安装,所以我就更改了后缀名.crt文件,安装后,由于不被信任,抓取的https协议的依然提示unknown,经过上网查找,问题没有解决。同事的小米华为手机都ok。

  

四:Charles HTTPS协议通用抓包配置规则

  在上面我们讲到要想抓取某个https协议的内容,在SSL Proxy Settings选项里面添加某个https协议的网址和端口号即可,但是这样可能会有点麻烦,要想截取所有的https协议怎么办?看下图(手机端电脑端通用)

  

Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则的更多相关文章

  1. 判断浏览器是pc端还是手机端

    1. 判断浏览器是pc端还是手机端 <script type="text/javascript"> var browser = { versions: function ...

  2. js 判断pc端或手机端

    <script> (function () { var navUA = navigator.userAgent; var defIncludeStr = "iPhone|Andr ...

  3. 关于PC端与手机端随着手指移动图片位置放生变化的拖拽事件

    当按下鼠标时,图片随鼠标移动松开时图片回到原位 drag("div_id") function drag(node_id){ var node = document.getElem ...

  4. 山西大同大学教务处教师端——可在PC端,手机端操作

    解决问题:大同大学教务处官网教师端口一进去就卡住了,点上面一行的菜单无响应 下载方法(学生端 / 教师端  / 验证脚本): 链接:https://pan.baidu.com/s/1MWrJXoPzE ...

  5. 山西大同大学教务处学生端--送给学弟,学妹的礼物,可在PC端,手机端操作

    解决问题:大同大学教务处官网学生端口一进去就卡住了,点上面一行的菜单无响应 转眼已是四年,想想自己大学即将结束,不由得让人感慨啊.这才刚开学几天,我就听到有同学在因为补考,选课的事情发愁.学校官方的教 ...

  6. 【工具】PC端调试手机端 Html 页面的工具

    一.概述 有一个项目需要在手机端显示一个 web 页面,而每次把应用 launch 后,从手机端看比较麻烦,因此搜罗了几种在 PC 端调试手机端页面的工具. 二.工具 http://fonkie.it ...

  7. 判断是pc端还是手机端,并跳转到相应页面

    <!-- 判断浏览器是否为手机端 -->  <script>     // class     ! function(navigator) {         var user ...

  8. tp5判断多模块下访问PC端和手机端

    现在很多网站的手机端和PC端都是分开的模块,这是问题就来了,有些手机端的用户输入了PC端的网址,直接访问了PC端.下面我教大家如何实现手机端用户访问PC时,跳转回手机端. 解决方法:把下面的代码放到公 ...

  9. 自动PC端显示 手机端隐藏CSS代码判断实现

    实现场景描述: 有些内容部署在PC端但是有不适合在手机端显示(比如盒子过大,遮挡内容)或者手机端显示毫无意义等.我们可以使用下面的代码来实现:电脑端显示,手机端隐藏 实现方法: CSS控制判断 @me ...

随机推荐

  1. spring 5.x 系列第22篇 —— spring 定时任务 (代码配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 关于任务的调度配置定义在ServletCo ...

  2. 【java爬虫】网络爬虫思路

    主要是针对某个单独的网站进行页面的爬取,方式有好多种,记录一下大体的思路. 方法1: a.通过http请求获取返回的静态页面. b.将返回的字符串页面进行split,切割成字符串数组. c.遍历字符串 ...

  3. 【小记整理】mybatis配置多个扫描路径写法

    百度得到,但是很乱,稍微整理下: 最近拆项目,遇到个小问题,稍微记录下: <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id ...

  4. idea提交代码到自己git账号的master branch

    1.注册GitHub账号 2.创建本地密钥与远程仓库连接(使用idea的话,这第二步可能不是必须的,但是密钥我之前配置过.所以写下来) ①安装git 客户端sudo apt-get install g ...

  5. 小白开学Asp.Net Core 《五》

    小白开学Asp.Net Core<五>                               —— 使用.Net Core MVC Filter 一.简介 今天在项目(https:/ ...

  6. HDU XXXX:求[L,R]的素数数量(数位DP)

    Problem G Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/131072K (Java/Other) Total S ...

  7. restapi(0)- 平台数据维护,写在前面

    在云计算的推动下,软件系统发展趋于平台化.云平台系统一般都是分布式的集群系统,采用大数据技术.在这方面akka提供了比较完整的开发技术支持.我在上一个系列有关CQRS的博客中按照实际应用的要求对akk ...

  8. Vue技术点整理-Vue CLI

    Vue CLI 是一个基于 Vue.js 进行项目快速开发的脚手架 注:具体安装步骤可参考Vue CLI,默认安装的脚手架,是没有service.util等工具类的,以下主要描述如何在脚手架的基础上进 ...

  9. MySQL login-path 本地快捷登陆

    目录 1.什么是 login-path 2. 配置 login-path 2.2.配置: 2.3.显示配置: 2.3.1.显示执行的login-path配置 2.3.2.显示所有的login-path ...

  10. Disruptor 详解 二

    Disruptor 的大名从很久以前就听说了,但是一直没有时间:看完以后才发现其内部的思想异常清晰,很容易就能前移到其他的项目,所以仔细了解一下还是很有必要的这.篇博客将主要从源码角度分析,Disru ...