Http请求头Host字段作用

HTTP/1.0不支持Host请求头;而在HTTP/1.1中,Host请求头部必须存在,否则会返回400 Bad Request
Host的作用是实现多个虚拟主机

假如在192.168.9.10机器上部署三个站点:www.baidu.com,www.taobao.com和www.jd.com
用nginx配置就是
http {

    server {
        server_name www.baidu.com;
    }
    server {
        server_name www.taobao.com;
    }
    server {
        server_name www.jd.com;
    }

}

1、curl -I "http://192.168.9.10/index.html" -H "host: www.baidu.com" -v
访问www.baidu.com的index.html

2、curl -I "http://192.168.9.10/index.html" -H "host: www.taobao.com" -v
访问www.taobao.com的index.html

3、curl -I "http://192.168.9.10/index.html" -H "host: www.jd.com" -v
访问www.jd.com的index.html

假设在DNS配置了www.baidu.com,www.taobao.com和www.jd.com 都指向192.168.9.10
则curl -I "http://www.baidu.com/index.html" -v 会自动将www.baidu.com填充到Host字段中
curl -I "http://192.168.9.10/index.html" -v 会自动将192.168.9.10填充到Host字段中,由于nginx没有配置192.168.9.10的server_name,所以此请求会报错

你可能感兴趣的