繁体   English   中英

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

[英]Is it possible to prevent cookies to be sent in every HTTP request?

我最近发现(这里: 每个Web请求是否发送浏览器cookie? )每次HTTP请求都包含每次向同一域发出请求时与域相关的cookie。

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

浏览器

无法阻止浏览器发送cookie

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

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


编程

相反, 您可以 从任何编程语言 中选择是否要发送cookie。

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

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

因此,如果您没有在请求中明确添加cookie,那么从NodeJS中,http调用不会保留它们。

您可以使用Fetchcredentials设置选项omit

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM