Owe*_*son 7 google-app-engine http-headers python-2.7
我试图在appspot上的某些处理程序代码上运行一个分析器,并且正在寻找一种方法来显示pstats输出,而无需直接写入响应主体(对于使用结构化数据(如JSON)进行响应的处理程序会出现问题).
我决定尝试将输出写入响应头,并将一些js添加到我的html渲染处理程序,它可以解析标题和console.log()它(结果是非常简单和方便使用).对于非html渲染处理程序,我想我可能会尝试构建一个chrome扩展来做类似的事情,但当然,每当我对这样的处理程序进行ajax调用时,调用页面(用js来解析)标题)可以介入并处理显示.
所有这些看起来都很好,因为我正在测试dev_appserver,但后来我部署到appspot,发现我的自定义标头从未出现过.我在这个项目中有类似的代码片段跟踪某些操作的执行时间,以及我编写的自定义头文件显示正常.
我假设appspot python运行时进程有一个限制,如果它超过一定长度则省略标题,但我没有看到开发者网站上任何地方发布的大小.
如果实际上有限制,有人知道它是什么吗?
我找不到关于这个的任何文件,但限制似乎是整个标题行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)
}
Run Code Online (Sandbox Code Playgroud)
将len查询参数设置为469是不删除Very-Very-Long-Test-Header标头的最大值.484是保留Test-Header标题的最大值,485是保留Xxxxx…标题的最大值.
它们每行总计497,或者如果你愿意的话,495除外": ".
请注意,此限制不适用于传入(请求)标头.
更新:该Set-Cookie标头具有不同的限制:4108个字节,而不是497.
| 归档时间: |
|
| 查看次数: |
851 次 |
| 最近记录: |