gpt4 book ai didi

node.js - 是否可以将 requestURL 与地址栏中输入的 requestURL 区分开来登录 Node 代理?

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:46 24 4
gpt4 key购买 nike

我只是无法让 http-proxy 模块作为转发代理正常工作。它作为反向代理非常有效。因此,我使用 Node 的http和net模块实现了基于 Node 的转发代理。无论是使用 http 还是 https,它都可以正常工作。稍后我会处理 websocket。除此之外,我想记录通过浏览器访问或请求的 URL。在请求对象中,我确实获取了 URL,但正如预期的那样,当页面加载时,会触发无数其他请求,包括 AJAX、第三方广告等。我不想记录这些。

我知道我可以区分 AJAX 请求和 x-requested-with header 。我可以通过检查用户代理 header 来区分来自浏览器的请求(尽管这些请求可以通过 cURL 进行欺骗)。我想最小化日志条目。

商业代理如何记录此类信息?或者他们只是记录每个请求?一种方法是在主请求之后的特定时间内不记录任何请求,假设它们都与主请求相关联。这在技术上是不准确的。

我在这方面进行了研究,但没有找到任何解决方案。我不是在寻找任何特定的代码,只是在寻找一些方向......

最佳答案

没有人能准确地知道这一点,但您可以找到诸如“HTTP Referer”、“x-requested-with”之类的线索,或者在每个 ajax 请求中添加自定义 header (squid 代理默认发送“X- Forwarded-For”表示他是代理),但任何人都可以弄清楚您为请求发送的 header 是什么,或者复制普通浏览器默认发送的所有 header ,您会相信它是来自浏览器的人,但也可以是机器人发送的 bash cURL。因此,实际上,您无法知道请求是否是 AJAX 请求,因为 header 不是强制性的,默认情况下您的浏览器或框架会添加 x-requested-with 或有用的信息来帮助“猜测”谁正在执行请求。

关于node.js - 是否可以将 requestURL 与地址栏中输入的 requestURL 区分开来登录 Node 代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com