如何以编程方式设置 HTTP *Request* header(例如,通过 <a> -tag、<link> -tag 或 JavaScript)?

How set HTTP *Request* header programmatically (e.g. by <a> -tag, <link> -tag, or by JavaScript)?

这个问题是关于 HTTP Request headers -- 不是 HTTP Response headers.

是否有任何方法可以通过编程方式让用户代理添加或更改任何 HTTP 请求 Header 例如通过 HTML、JavaScript 获取网页中的链接或资源。存在一些人们认为应该能够以编程方式控制的 HTTP 请求 Header,例如 max-stale.

(例如,可以想象 HTML-elements <a><link><img> <script> 等的某些可选属性可能存在,这会导致User Agent add/change 在其对服务器的请求中 header 一个 HTTP 请求 header,但我没有找到这样的属性。同样,人们可能认为应该存在某种机制来控制 HTTP 请求 [=使用 AJAX 时为 36=]s。)

回过头来问...:HTTP请求Headermax-stale如果无法控制,为什么会存在?

谢谢!

XMLHTTPResponse setRequestHeader() 方法可用于为 AJAX 请求设置 HTTP 请求 headers。各种 JavaScript 库以不同的方式公开此功能。例如,使用 jQuery.ajax() 您可以设置设置参数的 headers 属性。

有一些方法可以影响 html 中的请求 header,例如通过表单的 enctype 属性。我不相信有任何方法可以在 html.
中实际指定实际的 header 值 对于 Ajax 你可以指定请求 headers,虽然浏览器会阻止某些 headers 被设置,我怀疑 max-stale 是其中之一。
此外,不仅浏览器发出 http 请求,还有大量应用程序发出请求,如果需要,它们中的任何一个都可以轻松设置 max-stale header。