请求路径的问题

内容来自网络,用做查询记录查看。

请求路径概念:客户端请求访问服务端的路径,请求路径包括资源路径和资源名称

集成接口调用时报错404,一般排查请求路径是否正确。

1.请求路径的构成
客户端提交请求路径的目的是为访问服务端的指定资源,所以请求路径由两部分构成:资源路径与资源名称。即

请求路径 = 资源路径 + 资源名称

资源路径与资源名称的分水岭为:请求路径中的最后一个斜杠。斜杠前的部分称为资源路径,斜杠后的部分称为资源名称。例如:

请求路径:  http://localhost:8888/01-primary/some.do
资源路径:  http://localhost:8888/01-primary
资源名称:  some.do
URI:统一资源标识符
URL:统一资源定位符
2.请求路径的分类
根据是否可以唯一的定位一个资源标准,可以将路径划分为两类:绝对路径与相对路径。

绝对路径:可以唯一的定位一个资源。在Web应用中,一般情况下,以请求协议开头的路径为绝对路径。绝对路径以URL形式表示。
相对路径:仅仅依靠此路径,无法唯一的定位一个资源。但若将其再与一个参照路径相结合后,就可以转换为一个可以定位资源的绝对路径,这样的路径,称为相对路径。在Web应用中,一般情况下,不以请求协议开头的路径为相对路径。相对路径以URI形式表示。
转换关系: 绝对路径 = 参照路径 + 相对路径
URI:统一资源标识符
URL:统一资源定位符
3.相对路径的分类
以相对路径是否以斜杠开头划分,可以将相对路径划分为两类:以斜杠开头的相对路径,与不以斜杠开头的相对路径。

对于以斜杠开头的相对路径,再根据路径出现的位置的不同,可以划分为两类:前台路径与后台路径。

前台路径:出现在HTML文件,及JSP文件的静态部分中的以斜杠开头的相对路径,称为前台路径。例如,出现在<img/>的src中的路径、<a/>的href中的路径、<form/>的action中的路径、<script/>的src。。。前台路径的解析者是浏览器。
后台路径:出现在Java代码、JSP文件的动态部分、及XML、Properties等配置文件中的以斜杠开头的相对路径,称为后台路径。后台路径的解析者是服务器。
注意,不以斜杠开头的相对路径,其路径解析者,根据路径出现的位置不同,分别可以是浏览器或服务器。

4.转换规则
不同的路径解析者,对同一个相对路径的解析结果是不同的。当然,所谓解析结果,指的是将相对路径转换为的最终的绝对路径。由于绝对路径 = 参照路径 + 相对路径,所以这里的解析规则,就是指为这个相对路径匹配上一个怎样的对照路径。或者说,我们要学习的重点是,浏览器、服务器对相对路径所匹配的参照路径是谁。

前台路径:其参照路径为当前Web服务器的根。
后台路径:其参照路径为当前Web应用的根。
不以斜杠开头的相对路径:其参照路径为当前请求路径的资源路径。
例如,

请求路径:  http://localhost:8888/01-primary/xxx/ooo/jjj/some.do

当前Web服务器的根: http://localhost:8888
当前Web应用的根: http://localhost:8888/01-primary
资源路径: http://localhost:8888/01-primary/xxx/ooo/jjj
5.绝对路径分类
根据路径的作用的不同,可以分为两类:资源定义路径,与资源请求路径。

资源定义路径:用于表示资源在服务端的位置。换句话说,就是客户端若要访问服务端的某个资源,必须要提交的绝对路径。

资源请求路径:客户端所发出的对指定资源的请求路径。

当编写路径得时候,加不加斜杠都能访问时,最好都加上斜杠

6.特例
Response的sendRedirect()方法中的以斜杠开头的相对路径,按照前面的定义,其为后台路径。后台路径的参照路径应为当前WEB应用的根,但实际却不是,而是当前WEB服务器的根。缺少项目得名称。

解决这个问题有两种方式:

不加/
在路径前面加上request.getContextPath()

${pageContext.request.contextPath}解决项目路径和服务器名字不一样时访问出错得问题,只要涉及路径问题,我们就可以使用,故建议使用

请求转发和重定向可以同时使用得时候,我们最好使用重定向,因为这样做可以反恶意刷新
————————————————
版权声明:本文为CSDN博主「樱雨刀舞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32639133/article/details/82730962

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值