ContentType和MimeType有什么区别

Fra*_*uro 94 python django content-type mime-types

据我所知,他们绝对平等.但是,浏览一些django文档,我发现了这段代码:

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

令我惊讶的是两个相处的人.官方文档能够以实际的方式解决问题:

content_type是mimetype的别名.从历史上看,此参数仅称为mimetype,但由于这实际上是HTTP Content-Type标头中包含的值,因此它还可以包含字符集编码,这使其不仅仅是MIME类型规范.如果指定了mimetype(不是None),则使用该值.否则,使用content_type.如果两者都不给出,则使用DEFAULT_CONTENT_TYPE设置.

但是,我觉得它不够清楚.为什么我们使用2种不同的命名(几乎相同)?"Content-Type"只是浏览器请求中使用的名称,并且在外部使用很少吗?

每个人之间的主要区别是什么,什么时候调用某些东西mimetype是对的content-type?我是傻和语法纳粹吗?

chr*_*yss 51

为什么我们使用2种不同的命名(几乎相同)?"Content-Type"只是浏览器请求中使用的名称,并且在外部使用很少吗?

每个人之间的主要区别是什么,什么时候调用mimetype而不是内容类型?我是傻瓜还是语法纳粹?

原因不仅是向后兼容性,而且我担心通常优秀的Django文档对它来说有点手持波动.MIME(它至少值得阅读维基百科条目)的起源是扩展互联网邮件,特别是SMTP.从那里开始,MIME和MIME启发的扩展设计已经进入许多其他协议(例如HTTP),并且当需要在现有协议中传输新类型的元数据或数据时仍在使用.有许多RFC讨论用于过多目的的MIME.

具体来说,Content-Type:是几个MIME标头之一."Mimetype"确实听起来过时了,但是对MIME本身的引用却没有.如果愿意,将该部分称为向后兼容性.

[顺便说一下,这纯粹是一个术语问题,与语法没有任何关系.在"语法"下提交每个使用问题都是我的一个小小问题.GRRRR]


小智 42

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

例如 text/html; charset=UTF-8

text/html是mimeType
;是附加参数指示符
charset=UTF-8是字符集编码参数

例如 application/msword

application/msword是mimeType
它不能具有字符集编码,因为它描述了一个octet-stream不直接包含字符的良好形式.