ContentType 和 MimeType 有什么区别?

据我所知,他们是绝对平等的。然而,浏览一些 django 文档,我已经 找到了这段代码:

HttpResponse.__init__(content='', mimetype=None, status=200, content_type='text/html')

这让我很惊讶他们两个相处得这么好。官方文件能够以务实的方式解决这一问题:

Content _ type 是 imetype 的别名。 从历史上看,这个参数只是 called mimetype, but since this is 实际上包含在 HTTP Content-Type 头,它也可以 include the character set encoding, 这就不仅仅是个 MIME 了 类型规范 如果指定(不是“无”) ,则该值为 否则,将使用 content _ type。 如果两者都没有给出,则 使用 DEFAULT _ CONTENT _ TYPE 设置。

然而,我觉得它不足以说明问题。为什么我们对(几乎相同的)事物使用两种不同的命名方式?“ Content-Type”仅仅是浏览器请求中使用的一个名称吗?

What's the main difference between the each one, and when is right to call something mimetype as opposed to content-type ? Am I being petty and a grammar nazi?

43376 次浏览

为什么我们对(几乎相同的)事物使用两种不同的命名方式?

向后兼容性,基于您在文档中的引用。

为什么我们使用两种不同的命名 (几乎相同的)事情? 是 “ Content-Type”只是在 浏览器请求,并且只有很少的 用在外面?

这两者之间的主要区别是什么 每一个,什么时候打电话是正确的 与... 相反的模仿形式的东西 内容类型? 我可怜你吗 语法纳粹?

原因不仅在于向下兼容,而且我担心通常优秀的 Django 文档对此有点手忙脚乱。哑剧(至少维基百科条目是值得一读的)起源于扩展互联网邮件,特别是 SMTP。从那时起,MIME 和 MIME 启发的扩展设计已经找到了进入许多其他协议(比如 HTTP)的途径,并且在需要在现有协议中传输新类型的元数据或数据时仍在使用。有许多讨论 MIME 的 RFC 用于许多目的。

具体来说,Content-Type:是几个 MIME 头之一。“ Mimetype”确实听起来过时了,但是引用 MIME 本身并不过时。如果你愿意,可以把这部分称为向后兼容性。

[顺便说一句,这纯粹是一个术语问题,与语法没有任何关系。把每一个用法问题都归到“语法”下面是我最讨厌的事情。呃

如果你想知道详情,请参阅票据 3526

语录:

添加 content _ type 作为 到 HttpResponse 构造函数,稍微多一点 准确的名字。根据从 Simon Willison 完全倒过来 兼容。

我一直将 contentType 视为 mimeType 的超集。唯一的区别是可选的字符集编码。如果 contentType 不包含可选的字符集编码,那么它与 mimeType 相同。否则,mimeType 是位于字符集编码序列之前的数据。

E.G. text/html; charset=UTF-8

text/html是 mimeType
; is the additional parameters indicator
charset=UTF-8是字符集编码参数

E.G. application/msword

application/msword是 mimeType
It cannot have a character set encoding as it describes a well formed octet-stream not comprising characters directly.