目前项目中用到golang来开发http服务器,实现一组对象存储的REST API,里面有使用PUT方法上传文件的需求,文件内容是写在body里的,我希望可以在收到的tcp包可以组装成http header时就提前进行处理,如果header不满足要求,比如长度,或者签名,就不再收取body,目前使用起来感觉是底层把包收完,组装好才回调给上层的handler,不知道这种情况该怎么处理?另外我测试下来,当body很大(测试用200M)时,如果不调用读取body的函数,会很快走进handler里,但是不会有正确的返回值,也不了解其中的原因?
如果楼主使用的http协议的话,正常是http头和body一起发送,但header会先到达golang服务器,可以直接在获取到头部信息,然后你可以做出判断,终止本次的连接,或者继续处理上传上的内容,你不会去底层的TCP如何组装什么的。
#5
更多评论
楼主,你没看文档啊,http://docscn.studygolang.com/pkg/net/http/#Request, 类型Request 里就有解析好的Header
#2