是否可以阻止在每个HTTP请求中发送cookie?

时间:2016-08-25 15:40:34

标签: javascript node.js http cookies browser

我最近发现(此处:Does every web request send the browser cookies?)每次向同一个域发出请求时,每个HTTP请求都包含与域相关的Cookie。

鉴于此,例如,当请求不是通过浏览器发送而是从Node.js发送时会发生什么?是否可能在请求中未发送任何信息? 是否也可以阻止它在浏览器请求中发送?

3 个答案:

答案 0 :(得分:8)

<强>浏览器

无法阻止浏览器发送Cookie

这就是为什么通常是recommended(雅虎开发人员最佳实践,请参阅使用Cookie的组件部分)来提供来自不同cookie的不同域的静态内容,如css,images。 / p>

  

当浏览器请求静态图像并将cookie与请求一起发送时,服务器对这些cookie 没有任何用处。所以他们只是无缘无故地创建网络流量。您应该确保使用无cookie请求请求静态组件。创建一个子域并在那里托管所有静态组件。

<强>编程

使用任何编程语言,而如果您想要发送cookie,可以选择

Cookie管理由程序员完成,因为编写库是为了发出单个请求。

因此,如果你发出第一个返回cookie的请求,你需要明确地读取它们,在某处保存它们,并最终在需要时将它们放入同一服务器的第二个请求中。

因此,如果你没有在你的请求中明确添加cookie,那么从NodeJS开始,http呼叫不会保留它们。

答案 1 :(得分:3)

您可以将Fetch选项设置为credentials来使用omit 参见

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

答案 2 :(得分:-1)

您可以使用代理服务器删除Cookie。例如,我们的产品WinGate将允许您修改请求(和响应),您可以使用它来清除请求中的Cookie标头。

然而,这将阻止大量网站正常运行,因为cookie用于传输会话ID,以便服务器可以识别您的浏览器所做的每个连接/请求来自同一个&#34;会话&#34 ;。 HTTP本身没有任何会话概念。

免责声明:我为制作WinGate的Qbik工作。