我正在使用net/http软件包在GO中编写一个小型实验性http服务器,并且我需要所有的答复都具有“标识”传输编码。然而GO中的http服务器总是使用“分块”传输返回响应。 有什么办法可以禁用GO服务器上的分块编码?为HTTP服务器响应禁用分块编码
3
A
回答
1
这我不清楚是否有响应“传输编码:认同”的规范下是有效的(我想,也许你应该离开它),但是...
检查代码here,我看到这样的WriteHeader(代码INT)函数中(这是一个有点怪,但这个功能其实刷新所有的头到插座):在第一线
367 } else if hasCL {
368 w.contentLength = contentLength
369 w.header.Del("Transfer-Encoding")
370 } else if w.req.ProtoAtLeast(1, 1) {
371 // HTTP/1.1 or greater: use chunked transfer encoding
372 // to avoid closing the connection at EOF.
373 // TODO: this blows away any custom or stacked Transfer-Encoding they
374 // might have set. Deal with that as need arises once we have a valid
375 // use case.
376 w.chunking = true
377 w.header.Set("Transfer-Encoding", "chunked")
378 } else {
我相信“hasCL”以上是指具有一个可用的内容长度。如果可用,则它将全部删除“Transfer-Encoding”头,否则,如果版本为1.1或更高版本,则会将“Transfer-Encoding”设置为分块。因为这是在将它写入套接字之前完成的,所以我认为目前还没有任何方法可以改变它。
相关问题
- 1. Java的HTTP服务器发送分块响应
- 2. Netty http服务器响应
- 3. Netty 4和服务器分块响应
- 4. C#中的Http服务器支持分块传输编码
- 5. 支持分块编码的Python HTTP服务器?
- 6. 确定服务器响应编码
- 7. 中止HTTP/1.1块编码响应
- 8. 当数据存在时,http响应使用分块编码
- 9. utf8中的HTTP HTTP服务器响应
- 10. HttpClient:禁用分块编码
- 11. java.io.IOException:服务器返回的HTTP响应代码:400为URL
- 12. 解析分块HTTP响应
- 13. HTTP如何指定传输编码响应的结束:分块?
- 14. 具有两个“传输编码:分块”标头的HTTP响应
- 15. Jetty是否支持HTTP分块响应/传输编码?
- 16. C解析HTTP分块传输编码响应
- 17. 从jQuery发布到MVC Spring服务器响应HTTP 403禁止
- 18. VBScript:禁止缓存服务器对HTTP响应的URL响应URL请求
- 19. 服务器返回的HTTP响应代码:500用于URL
- 20. 使用边界分隔符创建HTTP服务器响应
- 21. 分块编码响应的gzip压缩?
- 22. 文件服务器原始HTTP响应
- 23. Apache HTTP服务器端口不响应
- 24. Java HTTP服务器响应不完整
- 25. HTTP服务器响应HTML文件
- 26. 从HTTP响应中删除服务器
- 27. 角/离子HTTP响应从服务器
- 28. HTTP HEAD分块编码
- 29. 包装为HTTP响应编码
- 30. 如何在基于灰熊的http服务器中禁用分块传输编码
您需要添加一个Content-Length标题; – thwd
golang-nuts中的一个线程涉及这个主题:https://groups.google.com/d/topic/golang-nuts/3sYwQlUOv-o/discussion – zzzz
谢谢@汤姆! Content-Length标题字符串中存在拼写错误。这固定了一切:) – Dany