在IIS中,为什么HTTP请求使用主机头,FTP请求不使用主机头

所以….

在IIS中,如果使用内置FTP,则需要在FTP 用户名中组合FTP主机头,例如www.hello.com | domain / username

所以,FTP程序从用户名中得到它的“钩子”。 但是,您可以使用www.hello.com:21通过FTP端口连接到FTP站点。

那么为什么FTP服务不像HTTP服务那样工作呢?

IIS根据主机头知道什么网站回传….

谢谢!

虚拟主机是内置到HTTP协议中的东西(自HTTP版本1.1以来)。

如您所知,虚拟主机允许HTTP服务器将同一IP和端口上的不同请求redirect到不同的目录或Web应用程序。 您的浏览器实际上发送它正在尝试连接的网站的名称以及对文档的请求。

大多数互联网协议不这样工作。 如果你想提供不同的东西,通常需要单独的IP地址或端口号。 另外,通常服务器期望你知道它的名字,因为你只是连接到它。

因此,FTP协议不支持虚拟主机,因为FTP客户端不会明确地告诉服务器他们试图访问哪个站点。 这可能会让您大吃一惊,但HTTPS中使用的SSL协议不支持虚拟主机 – 您需要为安装的每个不同的SSL证书分配一个IP地址(或端口)。