gpt4 book ai didi

google-app-engine - Google App Engine 上的 HTTP 响应 header 是否有大小限制?

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:53 24 4
gpt4 key购买 nike

我试图在 appspot 上的一些处理程序代码上运行分析器,并正在寻找一种方法来显示 pstats 输出而不直接写入响应主体(这对于处理程序响应结构化数据(如 JSON)是有问题的)。

我决定尝试将输出写入响应 header ,并向我的 html 渲染处理程序添加一些 js,这些处理程序可以解析 header 和 console.log() 它(结果很漂亮使用起来简单方便)。对于非 html 渲染处理程序,我想我可能会尝试构建一个 chrome 扩展来做类似的事情,但是当然,每当我对这样的处理程序进行 ajax 调用时,调用页面(使用 js 来解析 header )可以介入并处理显示。

当我在 dev_appserver 上测试时,所有这些看起来都不错,但后来我部署到 appspot 并发现我的自定义 header 从未出现。我在这个项目中有类似的代码片段,用于跟踪某些操作的执行时间,我编写的自定义 header 显示正常。

我假设 appspot python 运行时进程有一个限制,如果它大于特定长度则忽略 header ,但我没有在开发者网站上的任何地方看到发布的大小。

如果确实存在限制,有人知道它是什么吗?

最佳答案

我找不到任何关于此的文档,但整个标题行的限制似乎是 497 字节(包括键、冒号、冒号后的空格,但不包括 行尾的 '\r\n'

这是一个 Go 测试处理程序:

func Test(c appengine.Context, w http.ResponseWriter, r *http.Request) {
l, err := strconv.ParseInt(r.URL.Query().Get("len"), 10, 64)
if err != nil {
http.Error(w, "", http.StatusBadRequest)
return
}
value := ""
for l != 0 {
value += "X"
l--
}
w.Header().Set("Set-Cookie", value)
w.Header().Set("Test-Header", value)
w.Header().Set("Very-Very-Long-Test-Header", value)
w.Header().Set(value, "Test-Value")
w.WriteHeader(http.StatusNoContent)
}

len 查询参数设置为 469 是不删除 Very-Very-Long-Test-Header header 的最大值。 484 是最大的,将保留 Test-Header header ,485 是最大的,将保留 Xxxxx ... header 。

它们每行总计 497,或者如果您愿意的话,495 不包括 ": "

注意此限制不适用于传入(请求) header 。

更新:Set-Cookie header 有不同的限制:4108 字节而不是 497。

关于google-app-engine - Google App Engine 上的 HTTP 响应 header 是否有大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15280027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com