为什么'x-www-form-urlencoded'以'x-www'开头,当其他标准内容类型没有?

时间:2017-02-16 14:14:33

标签: http http-headers mime-types specifications w3c

据我所知,在过去,自定义标题名称的标准是使用前缀“X-”(我知道它不再被认为是标准的),但我一直无法找到这个命名约定和值之间有任何关系(“application / x-www-form-urlencoded”)。它是从一个后来采用的自定义内容类型值开始的吗?

我在这里找到this链接,这当然很有趣,但一直无法找到我的问题的答案。

是否有人知道选择此前缀的原因及其表示的含义?

2 个答案:

答案 0 :(得分:3)

  

自定义标题名称的标准是使用前缀“X - ”

实际上......不,根本没有。确切地说:它从来都不是标准,只是一种最佳实践。它允许实现者引入新的内容类型和编码,而无需为其编写完整的RFC。如今IANA Media Type Registry对此有好处。 RFC 6648结束了这种做法。

application/x-www-form-urlencoded以这种方式加上前缀的原因(它在所述注册表中被列为正确的MIME类型,btw))源于这样一个事实,即它是一种构造查询字符串的“自定义”方法。 URL。该部分有never seen proper regulation。 HTML背后的人只是去做了,这完全证明了前缀。

答案 1 :(得分:3)

就历史而言,我认为它具有x-前缀,因为它来自a proposal from Mosaic - 由于它只是一个提案,因此他们使用x-扩展名前缀来初步定义它。但是其他浏览器也是这样实现的,并且没有人花时间来正确地标准化一个没有前缀的替代品,所以它只是坚持这种方式,现在就是这样。

它可以追溯到www-talk邮件列表上的一个1993线程,标题为“将输入表单数据提交到服务器”,并在该线程中a September 1993 message from Marc Andreessen

  

这就是我们在Mosaic 2.0中所做的事情......见

     

http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html

     

...了解我们的最新动态

该链接现已破损,但标题为“Mosaic for X version 2.0 Fill-Out Form Support”的文档为archived at archive.org。这是相关的摘录:

  

ENCTYPE指定填写表单内容的编码。此属性仅在METHOD设置为POST时适用 - 即使这样,到目前为止,只有一个可能的值(默认值为application/x-www-form-urlencoded)。

无论如何,application/x-www-form-urlencoded is now formally defined in the current URL spec,有解析和序列化的算法 - 虽然它所有定义的部分都有这个注释:

  

application/x-www-form-urlencoded格式在很多方面都是异常的怪物,是多年实施事故和妥协的结果,导致了互操作性所需的一系列要求,但绝不代表良好的设计实践。特别是,提醒读者要密切注意涉及字符编码和字节序列之间重复(在某些情况下嵌套)转换的扭曲细节。不幸的是,由于HTML表格的普及,格式被广泛使用。