V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yzy8788
V2EX  ›  程序员

拼多多等 app,搜索请求地址是 t.gif,这个什么原理?

  •  
  •   yzy8788 · 2018-09-03 12:05:47 +08:00 · 11040 次点击
    这是一个创建于 2273 天前的主题,其中的信息可能已经有所发展或是发生改变。

    拼多多等 app,搜索的时候抓包发现它请求的地址是 POST http://t.yangkeduo.com/t.gif 然后返回状态码 200,啥数据都没有, 但是 app 里面却有搜索结果,这是啥原理?

    44 条回复    2018-09-04 21:27:01 +08:00
    SukkaW
        1
    SukkaW  
       2018-09-03 12:10:50 +08:00   ❤️ 2
    你可能抓的不对,这个很可能是统计回传
    7DLNU56W
        2
    7DLNU56W  
       2018-09-03 12:12:59 +08:00
    @SukkaW 这种 gif 是怎么做到统计的,请求了这个图片不是什么都得不到么?
    mengxy
        3
    mengxy  
       2018-09-03 12:13:51 +08:00   ❤️ 1
    @7DLNU56W 这只是服务端接收客户端传上来的数据,客户端不需要得到什么
    cnZary
        4
    cnZary  
       2018-09-03 12:14:00 +08:00
    @7DLNU56W .gif 又不一定是图片
    tonghuashuai
        5
    tonghuashuai  
       2018-09-03 12:29:22 +08:00
    很可能是打点请求
    owenliang
        6
    owenliang  
       2018-09-03 12:29:36 +08:00 via Android
    url 只是地址,与背后什么语言没必然关系
    GoLand
        7
    GoLand  
       2018-09-03 12:34:08 +08:00
    这叫打点。
    nu11001
        8
    nu11001  
       2018-09-03 12:38:55 +08:00   ❤️ 3
    连 https 都不知道,抓个 P 包
    codechaser
        9
    codechaser  
       2018-09-03 12:39:52 +08:00 via Android
    @nu11001 你这态度不太好吧
    nu11001
        10
    nu11001  
       2018-09-03 12:52:20 +08:00   ❤️ 4
    @codechaser 很讨厌 v2 上一大堆关于“爬虫”,“抓包”的低级问题
    linuxxxx
        11
    linuxxxx  
       2018-09-03 12:52:27 +08:00
    .gif 不一定就是图片。你这个 gif 是个 docment
    Morriaty
        12
    Morriaty  
       2018-09-03 13:13:35 +08:00   ❤️ 9
    这是埋点,由于图片请求是异步的,不会影响到用户的实际功能加载。

    然后把一些关键信息带到 url 参数里,比如 t.gif?cookie=xxx&from=wechat&action=search&time=15000000

    后端统一的日志解析,分析用户行为,出报表
    ShareDuck
        13
    ShareDuck  
       2018-09-03 13:25:19 +08:00 via Android
    你可能是没有抓取到 https 协议的数据包。不要设置代理抓,在网关上抓。
    yzy8788
        14
    yzy8788  
    OP
       2018-09-03 14:37:30 +08:00
    @ShareDuck 好的,感谢提醒,我来学习一下如何在网关上抓包
    sgissb1
        15
    sgissb1  
       2018-09-03 14:53:53 +08:00
    @Morriaty 大兄弟,请教一哈,为啥要伪装成 gif 的 url 打点?有没有啥原因?还是仅仅是喜好使然?
    这和运营商的 http cache 有关吗?
    deadEgg
        16
    deadEgg  
       2018-09-03 15:18:32 +08:00
    打点日志吧,可能表达的是启动量
    SeanChense
        17
    SeanChense  
       2018-09-03 15:25:07 +08:00
    @Morriaty 有意思。为啥要这样搞啊?我其他请求也是异步的啊
    SeanChense
        18
    SeanChense  
       2018-09-03 15:25:42 +08:00
    @sgissb1 POST 谈不上 http cache
    moxiaonai
        19
    moxiaonai  
       2018-09-03 15:32:41 +08:00
    打点统计+1
    JasperYanky
        20
    JasperYanky  
       2018-09-03 15:34:10 +08:00
    @SeanChense 可能是因为放 img 会自动触发?
    tonywwwz
        21
    tonywwwz  
       2018-09-03 15:43:37 +08:00   ❤️ 1
    http://blog.codinglabs.org/articles/how-web-analytics-data-collection-system-work.html
    可以参考这个,后端脚本为什么通常伪装成 gif 文件的原因,目的是实现跨域请求后端,不过我感觉这 web 打点用的多....
    app 这边没必要这样做
    meteor957
        22
    meteor957  
       2018-09-03 16:43:07 +08:00 via Android
    @nu11001 知道就说,不知道就闭嘴,你的回复有什么意义?
    Deville
        23
    Deville  
       2018-09-03 17:03:54 +08:00
    @nu11001 就是的呢,谁不是从不知道到知道的,skr~
    neezer
        24
    neezer  
       2018-09-03 17:07:07 +08:00
    @nu11001 "请尽量让自己的回复能够对别人有帮助"
    ShareDuck
        25
    ShareDuck  
       2018-09-03 18:01:44 +08:00
    @yzy8788 #14 你可以参考一下这篇文章:《小米 mini 路由器刷 PandoraBox 监听通讯报文》 https://ta0.wang/archives/11.html
    但我突然想起,这样就算是监听到 https 的报文也是没有用的,因为密文,终究还是要通过代理的方式进行抓包,你需要在你的代理软件中设置允许截取 https 报文,代理本身会对数据包用自有的证书(默认不被信任)重新加密,这个问题该怎样处理你要自己上网搜索了,我只搞过 PC 上的。但在 Android 上还有一个问题,在 Wifi 设置里设置代理后,仍然还是有应用的网络访问是没有通过代理的,原因我不知道,但确实存在这样的问题。
    loveCoding
        26
    loveCoding  
       2018-09-03 18:25:32 +08:00
    http 抓包, 推荐 Charles 或者 fiddler ,只能帮你到这里了
    yzy8788
        27
    yzy8788  
    OP
       2018-09-03 18:41:15 +08:00
    @ShareDuck @loveCoding 我最开始用的是 fiddler 抓包的,因为我使用 fiddler 有 3-4 年了,各项功能都比较熟悉,它是代理模式的,也在手机上安装了 https 证书,抓一部分 app (比如某度等),https 是可以抓到的。
    但是抓某多多这样的,在 fiddler 界面里面连一个 https 条目都没有出现,搞不懂是什么原理。
    我现在换了一种思路,换用 wireshark 软件了,这个软件可以抓网卡上面的所有数据,win10 系统自带 wifi 释放功能,释放后会自动新创建一个本地连接(譬如叫本地连接 13 ),手机连接这个释放出来的 wifi,然后 wireshark 来抓本地连接 13 的数据,可以抓到 TLSv1.2 协议的数据,只不过是加密的,网上看到有帖子教如何用 wireshark 来解析 https 数据,目前研究到这一步了,后续完全解决,再来补充
    Morriaty
        28
    Morriaty  
       2018-09-03 18:52:23 +08:00
    @sgissb1 @SeanChense 看 21 楼,另外可能还有个历史原因,中国最早做埋点之一的百度就是用的 hm.gif ,后来的公司都是模仿他们做的
    SeanChense
        29
    SeanChense  
       2018-09-03 19:08:55 +08:00
    learnshare
        30
    learnshare  
       2018-09-03 19:17:00 +08:00
    一像素的图片的确是为了统计吧
    skylancer
        32
    skylancer  
       2018-09-03 20:27:50 +08:00
    @nu11001 难道你自己什么都懂什么都会不需要人帮助吗
    yzy8788
        33
    yzy8788  
    OP
       2018-09-03 21:36:35 +08:00
    @airdge 请问你这个是网页版抓出来的?还是 app 里抓出来的?
    yhxx
        34
    yhxx  
       2018-09-03 21:55:32 +08:00
    @linuxxxx 不是 document,在浏览器里直接打开任意图片,控制台显示的类型都是 document
    tingyunsay
        35
    tingyunsay  
       2018-09-03 22:19:57 +08:00
    我们公司这东西都是埋点,上报日志,你倒是可以给他们刷访问量
    yzy8788
        36
    yzy8788  
    OP
       2018-09-03 22:45:24 +08:00
    @tingyunsay 为啥都用.gif 呢?有什么好处?是一种习惯?还是说 gif 比其他扩展名都有优势?
    HarryQu
        37
    HarryQu  
       2018-09-03 23:22:39 +08:00
    第一次听到打点这个概念。
    按照我的理解, 埋点和打点的作用都是为了数据统计。
    区别是埋点是前端统计,打点是后端直接统计。
    我的理解对吗 ? @tingyunsay @moxiaonai
    至于为什么用 gif ,我也是第一次遇到,等大佬解答。
    nu11001
        38
    nu11001  
       2018-09-04 11:10:31 +08:00
    @meteor957 我前面的回答都没有我的有意义,因为他们连帖主意思都没看懂
    nu11001
        39
    nu11001  
       2018-09-04 11:11:36 +08:00
    @Deville 但是我会用搜索引擎 skr~
    nu11001
        40
    nu11001  
       2018-09-04 11:13:24 +08:00
    @neezer 明明就是 https 包没抓到的原因,你看看有几个回复真的有用了?
    nu11001
        41
    nu11001  
       2018-09-04 11:14:03 +08:00
    @skylancer 我什么都不懂,但我不需要别人帮助
    linuxxxx
        42
    linuxxxx  
       2018-09-04 12:22:27 +08:00
    @yhxx 嗯, 看下 response 的返回的文件头就知道是啥了。
    dorentus
        43
    dorentus  
       2018-09-04 16:12:20 +08:00
    用 gif 是因为以前在网页里面,没啥可靠的跨域发送请求的办法,嵌入一个小图片在参数里面附数据算是比较常用的方式了

    至于到了移动应用里面为啥还用 gif,原因有很多,比如习惯了懒得改;比如不知道为什么,怕换别的 URL 会出神奇的问题……
    SilentDepth
        44
    SilentDepth  
       2018-09-04 21:27:01 +08:00   ❤️ 1
    @sgissb1 #15 @SeanChense #17 @JasperYanky #20 @yzy8788 #36
    gif 埋点有几个好处:体积小; 1px 透明图,对网页内容的影响几乎没有影响; img 天然支持跨域;图片请求不占用 Ajax 请求限额
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2649 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:25 · PVG 13:25 · LAX 21:25 · JFK 00:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.