首先需要明确一点的是:
用户输入网址访问对应的web资源时,输入的url形式是什么:
拿本地回环地址举例(ip可以换成需要访问的主机Ip,80端口是默认端口,可缺省)
如:http://127.0.0.1:80/hello/hello.html
在上述url中:
http是应用层协议,代表数据传输的规范
ip地址则对应是哪台主机
端口则代表服务器占用的port_id
/hello则对应虚拟虚拟目录,代表访问的项目
/hello.html则代表对应的项目资源(此处是静态资源)
了解了基本的概念后,我们来讨论下何时需要添加虚拟目录
当请求是从浏览器客户端发出的则需要加虚拟目录,为什么呢?
因为,浏览器虽然可以通过IP/PORT找到服务器,但是他不知道具体的项目是哪一个,因此添加了虚拟目录,就相当于告诉了浏览器需要访问哪一个项目下的资源,
因为,转发是服务器内部项目之间的数据通信,所以不需要添加虚拟目录,比如转发
注意:重定向也是需要加虚拟目录的,因为重定向是二次请求
综上:重定向和从浏览器请求服务器数据时需要加虚拟目录,而转发则不需要加