[11] [DFN[[CODE(MIME)@en[[[multipart/mixed]]]]]] は、
複数の[[本体部分]]の混合を表す[[MIME型]]です。

[12] 純粋な混合を表しており、それらの関係性は特にありません。

[13] [[電子メール]]に[[添付ファイル]]を含めたい時によく用いられます。

* 仕様書

[REFS[
- [8] [CITE@en[RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types]] ([TIME[2015-03-22 13:14:46 +09:00]] 版) <http://tools.ietf.org/html/rfc2046#section-5.1.3>
]REFS]

* 意味

[9] [CODE(MIME)@en[[[multipart/mixed]]]] は、
各[[本体部分]]が独立しており、
特定の順序で含める必要がある時に使うものです [SRC[>>8]]。

* 文脈

[24] 
[[FIPA MTP]] [[HTTP要求]]で使います。

[25] 
[[HTTP Certificate Store Interface]] [[HTTP応答]]で使います。

[26] 
[CITE@en[Content Credentials : C2PA Technical Specification :: C2PA Specifications]], [TIME[2026-01-15T06:08:55.000Z]], [TIME[2026-01-27T01:49:00.235Z]] <https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html#_format>


* 関連

[10] 未知の [CODE(MIME)@en[[[multipart/*]]]] [[MIME型]]は、
[CODE(MIME)@en[[[multipart/mixed]]]] として扱わなければなりません [SRC[>>8]]。

;; [14] [[Web]] では普通 [CODE(MIME)@en[[[multipart/mixed]]]] は実装されていませんので、
未知の [CODE(MIME)@en[[[multipart/*]]]] も実装されず、いずれも[[ダウンロード]]として扱われることになります。

[15] [[プッシュ配信]]のために [CODE(MIME)@en[[[multipart/x-mixed-replace]]]] が使われることがあります。

* 歴史

[1] [CITE@en[RFC 5621 - Message Body Handling in the Session Initiation Protocol (SIP)]]
([TIME[2009-09-12 07:37:40 +09:00]] 版)
<http://tools.ietf.org/html/rfc5621#section-4>

[2] [CITE[''''''[''''''whatwg'''''']'''''' Proposal: Loading and executing script as quickly as possible using multipart/mixed]]
( ([TIME[2012-12-04 00:39:17 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-December/038223.html>

[3] [CITE@en[RFC 4387 - Internet X.509 Public Key Infrastructure Operational Protocols: Certificate Store Access via HTTP]]
( ([TIME[2014-06-08 08:24:17 +09:00]] 版))
<http://tools.ietf.org/html/rfc4387#page-4>

[4] [CITE@en[RFC 5621 - Message Body Handling in the Session Initiation Protocol (SIP)]]
( ([TIME[2014-09-14 07:55:49 +09:00]] 版))
<http://tools.ietf.org/html/rfc5621#section-4.1>

[5] [CITE@en[RFC 5621 - Message Body Handling in the Session Initiation Protocol (SIP)]]
( ([TIME[2014-09-14 07:55:49 +09:00]] 版))
<http://tools.ietf.org/html/rfc5621#section-8.2>

[6] [CITE@en[RFC 5537 - Netnews Architecture and Protocols]]
( ([TIME[2014-09-14 17:08:11 +09:00]] 版))
<http://tools.ietf.org/html/rfc5537#section-5.2.1.1>

[7] [CITE@ja[Batch Requests - Google BigQuery — Google Cloud Platform]]
( ([TIME[2014-12-18 02:33:04 +09:00]] 版))
<https://cloud.google.com/bigquery/batch>

[16] [CITE@en[RFC 5621 - Message Body Handling in the Session Initiation Protocol (SIP)]]
([TIME[2015-06-21 16:17:31 +09:00]] 版)
<https://tools.ietf.org/html/rfc5621>

[17] [CITE@en[RFC 7681 - Email Exchange of Secondary School Transcripts]]
([TIME[2015-10-24 10:57:24 +09:00]] 版)
<https://tools.ietf.org/html/rfc7681>

[FIG(quote)[
[FIGCAPTION[
[18] [CITE@en[Batching Requests  |  Gmail API  |  Google Developers]]
([TIME[2015-10-08 03:21:07 +09:00]] 版)
<https://developers.google.com/gmail/api/guides/batch>
]FIGCAPTION]

> A batch request is a single standard HTTP request containing multiple Gmail API calls, using the multipart/mixed content type. Within that main HTTP request, each of the parts contains a nested HTTP request.
> Each part begins with its own Content-Type: application/http HTTP header. It can also have an optional Content-ID header. However, the part headers are just there to mark the beginning of the part; they're separate from the nested request. After the server unwraps the batch request into separate requests, the part headers are ignored.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[19] [CITE@en[RFC 7030 - Enrollment over Secure Transport]]
([TIME[2016-06-19 16:27:56 +09:00]])
<https://tools.ietf.org/html/rfc7030#section-4.4.2>
]FIGCAPTION]

>    If the request is successful, the server response MUST have an HTTP
>    200 response code with a content-type of "multipart/mixed" consisting
>    of two parts: one part is the private key data and the other part is
>    the certificate data.
> 

]FIG]


[20] [CITE@en[XProc 2.0: Standard Step Library]]
([TIME[2016-07-21 14:39:32 +09:00]])
<https://www.w3.org/TR/2016/NOTE-xproc20-steps-20160721/#c.request_body>

[FIG(quote)[
[FIGCAPTION[
[21] [CITE@ja[Google アナリティクス API リクエストのバッチ処理  |  アナリティクス Real Time Reporting API  |  Google Developers]]
( ([TIME[2016-09-30 03:30:47 +09:00]]))
<https://developers.google.com/analytics/devguides/reporting/realtime/v3/batching>
]FIGCAPTION]

> バッチ リクエストは、multipart/mixed コンテンツ タイプを使用した、複数の Google アナリティクス API 呼び出しを含む 1 つの標準的な HTTP リクエストです。このメインの HTTP リクエストを構成する各パートには、ネストされた HTTP リクエストが含まれます。
> 各パーツはそれぞれ Content-Type: application/http HTTP ヘッダーで始まり、オプションの Content-ID ヘッダーを指定することもできます。ただし、パーツヘッダーはパーツの開始箇所を示すためだけに存在していて、ネストされたリクエストとは分かれています。サーバーが一括リクエストを別々のリクエストにアンラップした後、パーツヘッダーは無視されます。
> 各パーツのボディ自体が完全な HTTP リクエストで、独自の動詞、URL、ヘッダー、ボディが含まれます。HTTP リクエストには URL のパス部分のみを含める必要があり、完全な URL は、一括リクエストでは許可されていません。

]FIG]


[22] [CITE@ja[Indexing API の使用  |  検索  |  Google Developers]]
([TIME[2019-12-18 02:56:05 +09:00]])
<https://developers.google.com/search/apis/indexing-api/v3/using-api>

[23] [CITE@en[Sending batch requests  |  Cloud Storage  |  Google Cloud]]
([TIME[2019-11-16 06:23:28 +09:00]])
<https://cloud.google.com/storage/docs/json_api/v1/how-tos/batch>