http头中的host字段详解

Host:客户端指定自己想访问的http服务器的域名/IP 地址和端口号。

今天同事问了一个问题引发了我对http头中host字段的详细思考,总结了以下5条。

1.host字段可以是域名,也可以是ip地址。host字段域名/ip后可以跟端口号,如Host: www.6san.com:8080

2.host可以由程序自定义,某些程序为了防止运营商或防火墙拦截会定义虚假host

3.http1.1中host字段可以是空值,http1.0中可以缺失host字段

4.http响应头中不包含host字段,所以wireshark中http.host过滤到的都是请求包

5.因为http头中的host字段可以由程序自定义,所以host字段的值就会有很多特殊情况,如包含多个’/'字符的HOST头信息,结尾含有”.”等

http头中可以没有host字段吗?

在http 1.1中不能缺失host字段,如果缺失, 服务器返回400 bad request,http1.1中不能缺失host字段,但host字段可以是空值

在http 1.0中可以缺失host字段。

RFC 2616中关于host字段的说明如下:

A client MUST include a Host header field in all HTTP/1.1 request messages . If the requested URI does not include an Internet host name for the service being requested, then the Host header field MUST be given with an empty value. An HTTP/1.1 proxy MUST ensure that any request message it forwards does contain an appropriate Host header field that identifies the service being requested by the proxy. All Internet-based HTTP/1.1 servers MUST respond with a 400 (Bad Request) status code to any HTTP/1.1 request message which lacks a Host header field.

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue代理服务器proxy是一个非常有用的功能,它可以用于将前端请求转发到后端接口,解决跨域问题。 首先,在Vue项目的根目录中找到vue.config.js文件,如果没有则手动创建一个。在vue.config.js文件中,我们可以通过配置proxy选项来设置代理服务器。 具体的proxy配置如下: ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:8080', // 这里配置你想要请求的后端接口地址,可以是本地地址也可以是远程地址 changeOrigin: true, // 是否跨域 pathRewrite: { '^/api': '' // 将路径中的'/api'替换为空字符串 } } } } } ``` 以上代码表示将以'/api'开头的请求转发到target指定的后端地址。例如,前端请求/api/user会被转发到http://localhost:8080/user。 除了target之外,proxy还支持其他一些配置选项,比如changeOrigin和pathRewrite。 changeOrigin用于控制请求头中host字段,如果设置为true,则请求头中host字段会被设置为target的hostname;反之,请求头中host字段保持不变。 pathRewrite用于重写请求路径,比如上述代码中的'^/api': ''表示将请求路径中的'/api'替换为空字符串。这样一来,前端请求/api/user经过代理服务器后,会被重写为/user发送给后端。 综上所述,Vue代理服务器proxy配置非常简单,只要按照上述格式在vue.config.js文件中进行配置即可。这样一来,前端就可以轻松地与后端进行交互,解决跨域问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值