ContentType과 MimeType의 차이점은 무엇입니까


103

내가 아는 한 그들은 절대적으로 동등합니다. 그러나 일부 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있습니까? 내가 칙칙하고 문법적인 나치인가?

답변:


54

(거의 동일한) 것에 대해 2 개의 다른 이름을 사용하는 이유는 무엇입니까? "Content-Type"은 브라우저 요청에 사용되는 이름이며 외부에서는 거의 사용되지 않습니까?

각각의 주요 차이점은 무엇이며 콘텐츠 유형과 달리 mimetype을 호출하는 것이 언제 옳습니까? 내가 말도 안되고 문법적인 나치인가?

그 이유는 이전 버전과의 호환성뿐만 아니라 일반적으로 우수한 Django 문서가 그것에 대해 약간 손을 흔드는 것이 두렵습니다. MIME (적어도 Wikipedia 항목은 읽을 가치가 있음)는 인터넷 메일, 특히 SMTP를 확장하는 데 기원을두고 있습니다. 거기에서 MIME 및 MIME에서 영감을받은 확장 디자인은 다른 많은 프로토콜 (예 : HTTP)에 적용되었으며 기존 프로토콜에서 새로운 종류의 메타 데이터 또는 데이터를 전송해야 할 때 여전히 사용되고 있습니다. 과다한 목적으로 사용되는 MIME에 대해 논의하는 수십 개의 RFC가 있습니다.

특히 Content-Type:여러 MIME 헤더 중 하나입니다. "Mimetype"은 실제로 쓸모없는 것처럼 들리지만 MIME 자체에 대한 참조는 그렇지 않습니다. 원한다면 그 부분을 이전 버전과의 호환성이라고 부르십시오.

[BTW, 이것은 문법과 아무 관련이없는 순수한 용어 문제입니다. "문법"아래의 모든 사용법 질문을 제출하는 것은 저의 반려견입니다. Grrrr.]


49

항상 contentType을 mimeType의 상위 집합으로 보았습니다. 유일한 차이점은 선택적 문자 집합 인코딩입니다. contentType에 선택적 문자 집합 인코딩이 포함되어 있지 않으면 mimeType과 동일합니다. 그렇지 않으면 mimeType은 문자 집합 인코딩 시퀀스 이전의 데이터입니다.

EG text/html; charset=UTF-8

text/htmlmimeType
;은 추가 매개 변수입니다. 표시기
charset=UTF-8는 문자 세트 인코딩 매개 변수입니다.

EG application/msword

application/msword는 mimeType 입니다. 문자를 직접
구성 octet-stream하지 않고 잘 구성된 형식을 설명하므로 문자 집합 인코딩을 가질 수 없습니다 .


1
이것이 정답입니다. 응답 mime_type (content_type 아님)을 설정해도 문자 집합이 재정의되지 않으며 UTF-8로 유지됩니다.
Mikko Ohtamaa 2014

간단히 "미디어 유형"이라고도하는 MIME 유형은 미디어 유형을 말합니다. 특정 사양에서는 Content-Type헤더 의 속성 사용을 포함하는 "파싱 가능한 MIME 유형"이라는 용어를 볼 수 있습니다 . 의 구문은 Content-Type여기에서 찾을 수 있습니다. tools.ietf.org/html/rfc2045#section-5.1
Josh Habdas

그러나 내 생각에 mime-type은 메일로 제한되는 매우 좁은 용어이고 content-type은 "콘텐츠 유형"에 대한 일반 영어입니다. 그래서 제 생각 text/html에는 사람들이 MIME이라고 부르는 경향이 있더라도 콘텐츠 유형도 있습니다. 또한 새로운 이름 인 media-type은 미디어가 100 가지 다른 것이므로 더 모호합니다. BBC는 미디어입니다! DVD는 미디어입니다! 그리고 데이터 스트림은 "미디어"가 아니라 "매체"라고 주장 할 것입니다.
user2173353

4

자세한 내용은 티켓 3526을 참조하십시오 .

인용문:

HttpResponse 생성자에 mimetype의 별칭으로 content_type을 추가했습니다. 약간 더 정확한 이름입니다. Simon Willison의 패치를 기반으로합니다. 완전히 이전 버전과 호환됩니다.


0

(거의 동일한) 것에 대해 2 개의 다른 이름을 사용하는 이유는 무엇입니까?

문서에서 인용 한 내용을 기반으로 한 이전 버전과의 호환성.


괜찮습니다. 장고에 추가하는 실용적인 이유를 이해했습니다. 그러나 질문의 ​​핵심은 왜 모든 사람들 이 두 단어를 그렇게 혼합하여 사용 하는지 , 그리고 결국 실제로 차이가 있는지 여부입니다.
Frangossauro 2010 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.