The following is a proposal for the use of headers in batch requests and responses.
Common Headers
===============
Content-Type - Each request in the batch must have a content type header as per section 11.7
Content-Encoding - Value on requests in batch overrides the batch value
Content-Language - Value on requests in batch overrides the batch value
Content-Length - Value on requests in batch specify the length of that request
OData-Version - Value on requests in batch overrides the batch value. Typically wouldn't vary from request to request.
Request Headers
===============
Accept - Value on requests in batch overrides the batch value
Accept-Charset - Value on requests in batch overrides the batch value
Accept-Language - Value on requests in batch overrides the batch value
If-Match - MUST NOT specify on the overall batch
If-None-Match - MUST NOT specify on the overall batch.
OData-Isolation - Applies to the overal batch only. Ignored on requests in the batch (per section 8.2.6)
OData-MaxVersion - Value on requests in batch overrides the batch value.
Prefer:odata.allow-entityreferences - Value on requests in batch overrides the batch value
Prefer:odata.callback - Async on batch level; track-changes at request level.
Prefer:odata.continue-on-error - MUST NOT be specified on requests in the batch
Prefer:odata.include-annotations - Value on requests in batch overrides the batch value
Prefer:odata.maxpagesize - SHOULD NOT be specified on batch
Prefer:odata.track-changes - SHOULD NOT be specified on batch
Prefer:return - SHOULD NOT be specified on batch
Prefer:respond-async - SHOULD NOT be specified (and is ignored) on requests in the batch (per section 8.2.8.8)
Prefer:wait - On batch, applies to overall batch. On statement applies to individual statement. This is the only header that should be used on a changeset.
Schema-Version (OData 4.01) - Value on requests in batch overrides the batch value
Response Headers
=================
ETag - Can be applied to responses in a batch response. SHOULD NOT be returned for batch.
Location - Can be applied to responses in a batch response. SHOLD NOT be returned for batch.
OData-EntityId - Can be applied to responses in a batch response. SHOULD NOT be returned for batch.
Preference-Applied - Can be applied to responses in a batch response and also the overal batch
Retry-After - Applies to the overal batch response only.