据我所知,他们绝对平等。但是,浏览一些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
?我是傻瓜还是语法纳粹?
答案 0 :(得分:47)
为什么我们使用2种不同的命名方式 (几乎一样)的事情?是 “Content-Type”只是一个名字 浏览器请求,并且很少 在外面使用?
之间的主要区别是什么 每一个,什么时候是正确的 某种mimetype而不是 内容类型 ?我是不是很可怜 语法纳粹?
原因不仅是向后兼容性,而且我担心通常优秀的Django文档对它有点手感。 MIME(至少值得阅读维基百科条目)的起源是扩展互联网邮件,特别是SMTP。从那里开始,MIME和MIME启发的扩展设计已经进入许多其他协议(例如HTTP),并且当需要在现有协议中传输新类型的元数据或数据时仍在使用。有许多RFC讨论用于过多目的的MIME。
具体来说,Content-Type:
是多个MIME标头中的一个。 “Mimetype”确实听起来过时了,但是对MIME本身的引用却没有。如果愿意,可以将该部分称为向后兼容性。
[顺便说一句,这纯粹是一个术语问题,与语法没有任何关系。在“语法”下提交每个使用问题都是我的一个小小问题。 GRRRR。]
答案 1 :(得分:39)
我一直认为contentType是mimeType的超集。唯一的区别是可选的字符集编码。如果contentType不包含可选的字符集编码,则它与mimeType相同。否则,mimeType是字符集编码序列之前的数据。
E.G。 text/html; charset=UTF-8
text/html
是mimeType
;
是附加参数指标
charset=UTF-8
是字符集编码参数
E.G。 application/msword
application/msword
是mimeType
它不能具有字符集编码,因为它描述了一个格式良好的octet-stream
不直接包含字符。
答案 2 :(得分:4)
如果您想了解详细信息,请参阅票证3526。
引用:
添加了content_type作为别名 mimetype到HttpResponse 构造函数。这稍微多一些 准确的名字。基于来自的补丁 西蒙威利森完全倒退 兼容。
答案 3 :(得分:0)
为什么我们使用2种不同的命名(几乎相同)?
向后兼容性,基于您在文档中的引用。