

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用可选的 HTTP 尾随标头启用由多部分组成的 Gremlin 响应
启用多部分响应

默认情况下，对 Gremlin 查询的 HTTP 响应以单个 JSON 结果集返回。如果结果集非常大，这可能会导致数据库实例出现 `OutOfMemoryError` 异常。

但是，您可以启用*分块*响应（以多个单独部分返回的响应）。您可以通过在请求中包含传输编码 (TE) 尾随标头 (`te: trailers`) 来实现此目的。有关 TE 标头的更多信息，请参阅[有关 TE 请求标头的 MDN 页面](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/TE)。

当响应分成多个部分返回时，可能很难诊断在收到第一部分之后出现的问题，因为第一部分到达时的 HTTP 状态代码为 `200` (OK)。随后的失败通常会导致消息正文包含损坏的响应，Neptune 会在消息正文末尾附加一条错误消息。

为了便于检测和诊断此类故障，Neptune 还在每个响应块的尾随标头中加入了两个新的标头字段：
+ `X-Neptune-Status` – 包含响应代码后跟一个短名称。例如，如果成功，则尾随标头将是：`X-Neptune-Status: 200 OK`。如果出现故障，响应代码将是 [Neptune 引擎错误代码](errors-engine-codes.md)之一，例如 `X-Neptune-Status: 500 TimeLimitExceededException`。
+ `X-Neptune-Detail` – 对于成功的请求，为空。如果出现错误，则它包含 JSON 错误消息。由于 HTTP 标头值中只允许使用 ASCII 字符，因此 JSON 字符串是经过 URL 编码的。

**注意**  
Neptune 目前不支持对分块响应进行 `gzip` 压缩。如果客户端同时请求分块编码和压缩，Neptune 会跳过压缩。