

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用選用的 HTTP 結尾標頭來啟用多部分 Gremlin 回應
<a name="access-graph-gremlin-rest-trailing-headers"></a>

根據預設，對 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 會略過壓縮。