记录一个HTTP客户端的开发

最近用NIO做一个http的客户端组件,碰到了个400问题弄了大半天,自己已经把协议对比的很仔细了,详细没有问题了,后来实在没办法,拉来tomcat的源码,断点查看,问题出来了
 MessageBytes valueMB = headers.getValue("host");

        // Check host header
        if (http11 && (valueMB == null)) {
            error = true;
            // 400 - Bad request
            if (log.isDebugEnabled()) {
                log.debug(sm.getString("http11processor.request.prepare")+
                          " host header missing");
            }
            response.setStatus(400);
        }

原来服务器会判断是否有host这个请求头,没有这个请求头直接就是bad request了。。。。。

开源软件就是好,直接看源码调试

你可能感兴趣的:(记录一个HTTP客户端的开发)