WebLogic对空的主机头请求返回Bad Request

时间:2019-06-28 17:56:09

标签: http post weblogic

我正在尝试调用托管在WebLogic服务器中的WebService。每次我在“主机”标头中以空值调用它时,都会收到“ 400-错误的请求”响应。如果我将某些内容放入主机头中,则请求正常,并且可以使用WS。 RFC说:

  

客户端必须在所有HTTP / 1.1请求中包含主机标头字段   消息。如果请求的URI不包含Internet主机   被请求服务的名称,然后主机标头字段务必   赋予空值

当我发送带有空值的主机时,我发送的是不带主机名的URI,因此,通过RFC,我做得很好。

这是我的HTTP标头,收到错误请求:

POST /myContent/myWebService HTTP/1.1
SOAPAction: mySOAPcall
Connection: Keep-Alive
Host: 
Content-Type: text/xml;charset=UTF-8
Content-Length: 709

如果我放置主机,它可以正常工作:

POST http://mydomain.com.br/myContent/myWebService HTTP/1.1
SOAPAction: mySOAPcall
Connection: Keep-Alive
Host: mydomain.com.br
Content-Type: text/xml;charset=UTF-8
Content-Length: 709

我是否在请求中缺少带有空主机头的内容?

1 个答案:

答案 0 :(得分:0)

在查看RFC规范时,我找不到以下引用:

  

客户端必须在所有HTTP / 1.1请求消息中包含主机标头字段。如果所请求的URI不包含所请求服务的Internet主机名,则必须为Host标头字段提供一个空值

但是在3.2节中,我发现:

  

现在要求拒绝字段名周围的无效空格,      因为接受它表示一个安全漏洞。 ABNF      现在,定义标头字段的产品仅列出字段值。      (3.2节)

https://tools.ietf.org/html/rfc7230#section-3.2

是否有可能将空值解释为无效的空格?