微信安卓 X5 浏览器一个让人无语的设定

2017-12-25 16:02:20 +08:00
 hhacker
8819 次点击
所在节点    程序员
16 条回复
hhacker
2017-12-25 16:36:55 +08:00
目前能够使用的解决方案是:要么用 get 要么上 https
kslr
2017-12-25 17:02:19 +08:00
代理从谁哪里?微信服务器?
w88975
2017-12-25 17:05:12 +08:00
感觉并不是走代理 而是微信的网页安全检查
chairuosen
2017-12-25 17:10:15 +08:00
卧槽这是个大新闻啊,微信在监听并拦截所有 http POST 请求?
hhacker
2017-12-25 17:14:07 +08:00
可以肯定是微信的服务器,这个无需震惊吧,这个很多人已经确认过了啊
hhacker
2017-12-25 17:16:01 +08:00
#1 微信内置浏览器 x5 内核 有哪些坑及解决方案? - 李智辉的回答 - 知乎
https://www.zhihu.com/question/30465777/answer/81110021

#2 聊聊微信内页面发 Ajax 请求会重复请求的问题
https://blog.fishlee.net/2016/07/07/double-request-from-wechat-client-with-ajax/

#3 X5 重发 http 请求是怎样的?
https://x5.tencent.com/tbs/technical.html#/detail/web/1/30948b53-875d-4b46-b05b-1122dd55c900
kslr
2017-12-25 18:02:05 +08:00
@hhacker #6 可是 X5 的文档可从来没有这样说过啊,我们也在用 X5。
Biwood
2017-12-25 18:10:21 +08:00
非常非常恶心,手机 QQ 内置浏览器会劫持链接跳转到腾讯自己的网址然后再跳转回去,这个劫持不是在初次打开网址的时候,而是每一次跳转都劫持,我真是对这家公司没有任何好感。
sobigfish
2017-12-25 19:53:23 +08:00
关键是如何判断来自 x5 垃圾请求,并回复给它 408(能解决么? 408 )
huangtao728
2017-12-25 23:45:22 +08:00
实测了真的有这个现象,我之前遇到的是微信会强制转码一个我自己的网站,不能通过申诉关闭,只能绑定成为公众号业务域名避免
现象是在一个用户的正常访问后,会有一个来自深圳电信的 IP 伪装成一台 iPhone 模拟访问,并缓存转码,之后访问的用户通通呈现这个转码版本

几个问题:
1、原网站的流量来源直接被掐掉了
2、微信的缓存多久刷新没有明确指示,导致了一旦被缓存,来自微信的用户可能看不到网站的最新版本
3、转码不够聪明,可能精简重要内容
huangtao728
2017-12-25 23:52:50 +08:00
https://i.loli.net/2017/12/25/5a411d67f11b6.png

这是我几周前发现这个问题时的笔记,
我的解决方案是根据特征做检测,发现模拟访问就返回特供版网页(精简到剩主要内容),让微信缓存,页面内提示该版本可能不实时,引导用户浏览器打开

当时同时也阉割了特供版页面里网站的某些功能,比如登录,编辑,目的是逼着用户不在微信内浏览,现在看来还是有点远见啊
xmcp
2017-12-26 00:01:38 +08:00
去年研究过微信的转码,发现微信不会转码错误页面。所以在 nginx 里加一条规则,看到 nsukey 参数强行把状态码设成 403,响应正文不变,这样就不会转码了。
DOLLOR
2017-12-26 00:09:47 +08:00
同被这种机制恶心到了
hhacker
2017-12-26 09:21:37 +08:00
翻 x5 的 faq 找到了这个
https://x5.tencent.com/tbs/technical.html#/detail/web/1/849c02ab-8165-4e55-8628-e3ba8d8cf30e
复制一下是这样的
无论访问什么网页,如果网页超过一定时间没有响应,x5 浏览器会自动重新发起请求?
这里有两个问题
1 )一个是代理的问题,即代理认定响应的超时时间是 6S,在 6S 内没有给代理响应,代理认为链接失败,转而让终端走直连了。
2 )终端直连发起请求,如果长时间没有收到响应,会进行重视,最多重视三次。
解决办法有两个。
1 )服务器端做兼容,尽量在 6S 内响应。
2 )加直连的白名单,即忽略代理这条线,但是直连如果等待的时间太长,过了终端的超时时间,终端还是会发起重试。
所以服务端处理的时间尽量压缩一下。

#那么现在的问题是,直连白名单是由 TBS 管理的,似乎在开发者论坛发帖有一定可能性加到直连白名单里?
smallgoogle
2019-11-13 20:08:50 +08:00
@huangtao728 不知道您解决转码啦吗?
smallgoogle
2019-11-13 20:09:07 +08:00
@xmcp 有效吗?好像没啥效果。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/417471

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX