WEB基础问题:请求转发和重定向的区别是什么?

本文解析了请求转发与重定向的关键差异,包括工作原理、数据访问能力及路径认知的不同,强调了请求转发在服务器内部操作的优势,以及重定向视为外部访问的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了网上很多回答,基本都讲的比较长和详细,但是该问题一般在面试中问的比较多,

先总结如下:

  1. 基本的区别是:请求转发是在服务器内部转发,重定向约等于于从外部访问服务器

  2. 请求转发因为是从服务器内部转发,所以请求转发能够访问WEB-INF文件夹下的资源

    这点重定向无法办到

  3. 请求转发能够从request作用域中获取数据,而重定向不能,但是它们的共同点是都能从

    serveletContext 和 session 中获取数据

  4. 也是最容易搞混的,路径问题:

    1)重定向认为的"/"指的是tomcat的根路径

    2)请求转发认为的"/"指的是当前应用的根路径

    举个例子:Tomcat下面有个项目csdn,文件路径为D:/tomcat/webapps/csdn

此时重定向认为的根路径"/",就是webapps/

而请求转发认为的根路径是:csdn/

简单总结为:

请求转发和重定向:

  1. 一个服务器内部转发,一个在服务器外部访问

  2. 一个能访问WEB-INF, 一个不能

  3. 一个能取request作用域中的数据,另一个不能

  4. 请求转发认为的根路径是应用根路径,重定向认为的根路径是服务器根路劲

以上是对下面回答的补充与扩展:
https://blog.youkuaiyun.com/qq_34111779/article/details/78164027

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值