请教大神们如和根据 http header 判断来的请求是是不浏览器?

2020-06-23 10:13:15 +08:00
 iawes

只重定向来自浏览器的请求,而不重定向其他应用或者系统层的 80 请求?

5595 次点击
所在节点    程序员
48 条回复
also24
2020-06-24 11:41:29 +08:00
@iawes #39
你给出的已经是一种『实现方式』,并不是『原始需求』。

X-Y Problem 之所以会产生沟通问题,就是因为提问者自己猜测了一种实现方式,然后基于这种实现方式进行提问。
这会导致解决问题的可行方案范围缩窄,或者第三方对问题的错误理解。


这样说,你想要用这个判断来完成什么动作?你 302 到的页面希望展示什么信息?
为什么对于 APP 、系统的 API 请求可以考虑放过?是因为它们无法展示信息嘛?

这涉及到你更根源的需求,是希望做登录鉴权?行为管理?欢迎页面?
或者仅仅是为了传达一个信息给首次使用的人?
iawes
2020-06-24 12:33:58 +08:00
@xiangyuecn wifidog 是连接 wifi 时候实现重定向,这个不难。
iawes
2020-06-24 12:35:28 +08:00
@hallDrawnel 不是认证,认证的话倒简单多了。
用户第一次打开 浏览器(重点) 的时候跳转,其他情况不跳转。
felixlong
2020-06-24 13:50:01 +08:00
@iawes 你确定? IE 只需要检查是否包含 MSIE 不就好了?
hugedata
2020-06-24 14:01:24 +08:00
我没做过,但是看看这个思路是否可以:
对每个 http 的 80 端口连接都进行 mac 过滤,如果已知列表里没有,则直接返回 302,否则,什么都不做。你把这个已知 mac 放 ram 里。应该比源站响应要快。
iawes
2020-06-24 14:59:44 +08:00
@hugedata 对每个 http 的 80 端口

重点不是每个 http 都是来自浏览器的 request
iawes
2020-06-24 15:01:27 +08:00
@felixlong 好像是 o,但是还有 chrome,firefix,QQ browser,360 browser 呢
hugedata
2020-06-28 13:58:32 +08:00
只能 header 检查了。

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

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

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

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

© 2021 V2EX