2. 抖音 HTTP 请求流程
我们以安卓 10.6 版首页推荐视频为例,来看一个真实的抖音请求流程:
上图是通过抓包软件抓取的首页推荐视频请求数据。可以看出,当你一打开抖音,APP 就会自动向抖音服务器发送一条 HTTP 请求消息。
图中蓝色箭头可以看出,请求是向 aweme-hl.snssdk.com/aweme/v2/fe… 这个网址发送的 (URL)。
黄色箭头标出该 HTTP 请求包含了地理位置信息 (请求参数),以及身份信息 (Cookie)。
抖音服务器收到请求后,就知道你是谁,你在哪里,你要干什么。然后会将红色箭头中的视频推荐数据回复给你。
点开回复数据,可以看到其中包含了视频 ID,标题,描述,点赞量,评论等多种信息。
有的读者可能注意到一串
\350\241\250\346\203\205
这样奇怪的数字,这其实是一种叫 UTF-8 的编码方式。可以简单理解为每三组 \xxx 组成一个中文字符。比如上面这串数字翻译过来就是
表情
两个字。
抖音 APP 通过读取回复消息,就知道该给我们展示哪些视频了。
但此时并没有结束,APP 还要根据返回的视频 ID,额外做两次 HTTP 请求,以获得需要展示的视频数据和缩略图信息,这样才能真正给我们展示首页推荐视频。
3. HTTP 包到底长什么样?
小伙伴们读到这里,应该明白整个抖音数据的请求流程了。俗话说纸上得来终觉浅,我们就以抖音点赞为例,手把手教大家怎样抓取和查看一个真实的 HTTP 请求包。
1. 下载抓包软件
首先,需要下载 HttpCanary 抓包软件,可以从 Google Play 或者 Apkpure 里下载。安装完成后,重启手机,就可以开始抓包了。
2. 抓取点赞请求包
先打开抖音 APP,再打开 HttpCanary,开始抓取抖音数据。如下图所示:
随便找个视频点赞,可以看到 HttpCanary 在不停的抓包。点开 HttpCanary,找带有 /aweme/v1/commit
字样的请求包:
3. 查看 HTTP 请求包
点开请求包,可以看到,这其实是一个普通 HTTP 报文,红线部分表示需要点赞的视频 ID。
请求信息中除了包含视频 ID 外,还包含了你的身份信息,这样抖音才知道这个视频是谁在点赞。
然后 APP 通过查看回复消息,判断点赞请求是否成功,如果成功,就可以将视频边上的小红心点亮了。
通过点赞数据包,我们可以清楚看到,抖音所有浏览,点赞,评论,发布视频等,其实都是通过一个个 HTTP 完成的。
4. 亲手做一个自动点赞爬虫
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
结尾
好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套进阶学习的视频及面试专题资料包,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
nity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**