1、从前端后端的角度来说,用户在浏览器输入url例如:http://ip:port / 应用上下文路径 / 服务路径发生了什么。
- ip:port :对应着服务器的IP地址与端口
- 应用上下文路径:在web服务器中,可能有多个web项目,每个项目都有自己的应用上下文路径,该路径是在项目部署阶段需要配置的(可以自己设置)。以tomcat为例部署过程如下:
每个应用上下文路径下拥有静态资源(HTML文件),servlet程序资源。 - 服务路径:每个web应用拥有多个服务路径,对应着一个web应用实现,服务路径是敏感的,比如login与login.html,他们两个对应着不同的资源。在后端代码中使用 @WebServlet() 来命名servlet程序资源(一定是/xxx)。
他们之间定位的关系如下图表示:
2、后端中转发与重定向的区别
-
重定向:
是两次请求。通常Servlet中调用resp.SendRedirect();返回3xx状态码+Location响应头,表示要跳转的路径,浏览器接收到响应后自动跳转。
-
转发:
是一次请求。后端接收直接把转发路径的资源作为响应体返回。
-
区别
1)url路径是否改变,重定向会改变,转发不会改变。
2)网络请求的次数不一样,重定向是两次,转发是一次。
3)重定向可以是任何网址,转发必须是本站点的地址。