【问题标题】:What is X-REMOVED HTTP header?什么是 X-REMOVED HTTP 标头?
【发布时间】:2013-12-25 03:40:07
【问题描述】:

在尝试使用 AJAX 时,我尝试将“Range”标头添加到请求中。用wireshark嗅探发现“X-Removed”标头。

在网络上找不到任何相关内容。 有谁知道这个标题是什么?

Testcase 标头(使用 Chrome):

GET /img/initializing.png HTTP/1.1
Host: fiddle.jshell.net
Connection: keep-alive
X-REMOVED: Range
Accept: */*
Referer: http://fiddle.jshell.net/_display/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,he;q=0.6
Range: bytes=0-

【问题讨论】:

  • 相关(不是解决方案,而是关于该标题的出现):stackoverflow.com/questions/12464761/… 这真的很愚蠢,谷歌除了标题的其他提及之外什么也没找到。没有文档。

标签: javascript ajax http google-chrome


【解决方案1】:

从历史上看,应用程序协议的设计者和实现者经常通过在非标准化参数的名称前加上字符串"X-" 或类似结构(例如,“x.”)来区分标准化参数和非标准化参数,其中“X”是通常被理解为代表“eXperimental”或“eXtension”。

在此约定下,参数的名称不仅标识了数据,而且将参数的状态嵌入到名称本身:由公认的标准开发组织产生的规范中定义的参数(或根据流程注册的参数)在这样的规范中定义的)不是以 "X-" 或类似结构开头的,而在此类规范或流程之外定义的参数则以 "X-" 或类似结构开头。

"X-" 标头是由开发人员定义的“非标准标头”,可以表示任何他们喜欢的意思,他们实际上不必遵循任何标准,因为没有标准。

但是,一些X- 标头很常见,例如X-Requested-With 在所有广泛使用的框架(如jQuery)中随Ajax 请求一起发送,以及大多数浏览器支持的X-Frame-OptionsX-Powered-By,或者IE 特定 X-UA-Compatible 但它们仍然不是标准化的标头。

换句话说,任何“X-”标头都是有效的,使用“X-”前缀意味着它不是标准标头,它实际上可以做任何事情。

【讨论】:

  • 既然 Chrome 发送它,我希望有人知道这个标题的含义。它不是特定的开发人员。我可以对像 x-forwarded-for 这样的标头说同样的话,它是非标准标头,但每个人都知道它的含义
  • @Niros - 是的,但我可以定义自己的标题,并在其前面加上 X- 前缀,这将是有效的,但只有我知道它的作用。这些都是非标准的头文件,有些是大多数浏览器常用和支持的,但是没有标准的方法来处理这些头文件,由开发者或浏览器决定如何处理。
  • @adeneo 这一切都是正确的 - 这不是该标题做什么的问题的答案。我很感兴趣 - 它被多次提及(谷歌搜索)但没有任何解释。我不了解你,我想知道一些事情!这看起来不像是某个孩子的“私人”标头,它似乎在外面使用,而不仅仅是在一些不起眼的单个随机服务器上。好吧,至少这是我从几分钟的“谷歌研究”中得到的结果——但这样搁置这个问题对我来说似乎是不合理的。
  • @Mörre - 这绝对是一个谷歌标题,我也尝试在没有答案的情况下进行搜索,答案确实是这些标题没有在任何地方定义,无处可查,所以在归根结底,只有 Google 真正知道它在做什么,而且这可能是他们在内部使用的东西。
  • @adeneo 在其中一个页面上,我发现有人声称在 .net (twitter.com/jpluscplusm/status/301685481102524416) 启动的 HTTP 请求中看到了该标头,但这只是一条推文...
【解决方案2】:

我无法验证您的测试用例,因为它在尝试 XHR 之前就抛出了 FileError。

只是预感:禁用您可能已安装的所有 Chrome 扩展程序,然后再次尝试您的测试用例。这可能是工作中过度使用安全/隐私/广告拦截扩展的情况。

【讨论】:

  • 您似乎在使用 Chrome 隐私模式。试试普通模式。无论如何,即使没有扩展,我也会得到相同的结果
  • 我没有使用隐私模式。 Chrome 32 / OS X 上的测试用例以 FileError Code 3: An ongoing operation was aborted, typically with a call to abort() 退出。
猜你喜欢
  • 2012-02-23
  • 1970-01-01
  • 2012-06-27
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
相关资源
最近更新 更多