HTTP请求报错400-Bad Request
今天工作上发现一个HTTP请求报错400-Bad Request:The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.
最终原因:在http 1.1中不能缺失host字段,如果缺失, 服务器返回400 bad request,http1.1中不能缺失host字段,但host字段可以是空值。
在http 1.0中可以缺失host字段。
Host:客户端指定自己想访问的http服务器的域名/IP 地址和端口号。
今天在网上搜索总结了以下5条:
1.host字段可以是域名,也可以是ip地址。host字段域名/ip后可以跟端口号,如Host: www.6san.com:8080
2.host可以由程序自定义,某些程序为了防止运营商或防火墙拦截会定义虚假host
3.http1.1中host字段可以是空值(但不能缺失host字段),http1.0中可以缺失host字段
4.http响应头中不包含host字段,所以wireshark中http.host过滤到的都是请求包
5.因为http头中的host字段可以由程序自定义,所以host字段的值就会有很多特殊情况,如包含多个’/’字符的HOST头信息,结尾含有”.”等