代码之家  ›  专栏  ›  技术社区  ›  顿顿是顿文

如何侦听http模块中没有“/”的路径

  •  4
  • 顿顿是顿文  · 技术社区  · 6 年前

    当http请求如下所示时,我可以触摸我的代码:

    POST /init HTTP/1.1  
    Host: 127.0.0.1  
    Connection: keep-alive  
    Content-Length: 1343 
    

    POST init HTTP/1.1 // what different is : the path without a '/'  
    Host: 127.0.0.1  
    Connection: keep-alive  
    Content-Length: 1343  
    

    我的node.js代码是:

    http.createServer(function (req, res) {
      console.log('sth')
    }).listen(3000); 
    

    不幸的是,我无法更改发出 init 要求

    1 回复  |  直到 6 年前
        1
  •  0
  •   Haroldo_OK    6 年前

    请看这个问题: Do HTTP paths have to start with a slash?

    显然,是的,起始斜杠是有效HTTP请求所必需的。

    由于这在技术上是无效的HTTP,大多数库都不支持它。

    Apache似乎容忍没有斜杠的路径。。。也许将其用作反向代理作为解决方案?

    另一种可能是分叉HTTP服务器库,并对其进行修改,以允许没有斜杠的路径。。。你可能想看看这篇文章: https://softwareengineering.stackexchange.com/questions/349656/implement-a-http-server-on-top-of-nodejs-tcp-apis-for-learning-purposes