首页 > 其他分享 >为什么我的请求路径中多了/ 还是能正确请求到我的接口??

为什么我的请求路径中多了/ 还是能正确请求到我的接口??

时间:2023-12-18 15:13:04浏览次数:32  
标签:匹配 请求 URL 路径 接口 斜杠 中多

  问题:最近测试时发现postman输入了错误了请求路径也能正确路由到我后端的接口,这是为什么呢?

  举例:请求路径 /rest/ceshi/testa/testb?id=1 是后端正确的url

     当把路径中随意/处再增加多个/时,例如请求路径:/rest/ceshi///testa/testb?id=1,任然能正常请求到接口。

  分析

    在一些Web框架中,路径中多余的斜杠(/)通常会被视为一个斜杠。这是因为在URL解析过程中,多个连续的斜杠被视为一个斜杠,以保持路径的一致性和可读性。

例如,对于以下两个URL:

  • /api/user
  • /api//user

  这两个URL实际上被视为相同的路径/api/user。因此,如果你的请求路径多加了一个斜杠,仍然可以映射到Controller的接口,这是正常行为。

  在大多数Web框架中,路径匹配是基于模式匹配的,而不是严格的字符串匹配。因此,路径中的额外斜杠不会影响路由的匹配过程。

  然而,具体的行为可能因不同的框架而异,因此这可能只是一种常见的行为。如果你使用的是特定的框架或工具,请查阅其文档以了解更多关于路径匹配的规则和行为。

  springBoot处理:

  Spring Boot 中的路径匹配是由 PathPatternParser 类负责的。在这个类中,有一个方法 parse,它会将请求路径解析成一个 PathPattern 对象。在解析过程中,会将路径中间的多余 / 自动忽略,并将它们视为一个 /

具体来说,PathPatternParser 类会将请求路径按照 / 分隔成若干个部分,然后逐个处理这些部分。如果当前部分为空字符串或者为 /,则忽略它;否则,将它添加到路径模式中。这样就能够处理路径中间的多余 /,并将它们视为一个 /

  

    

  

标签:匹配,请求,URL,路径,接口,斜杠,中多
From: https://www.cnblogs.com/chcha1/p/17911281.html

相关文章

  • Python自动化软件测试:接口测试Requests模块从0到精通
    Requests模块是Python中一个非常流行的第三方库,用于处理HTTP请求。在接口自动化测试中,Requests模块可用于模拟发送HTTP请求并检查响应数据,以验证API的功能和性能。以下是与Requests模块相关的一些知识点,这些知识点都是从事接口自动化测试,必须要掌握的内容:安装和导入Requests模块:使......
  • 天猫商品详情接口 json 格式返回介绍
    天猫商品详情数据接口返回的JSON格式数据通常包含以下字段:num_iid:商品IDtitle:商品标题desc_short:商品简短描述price:商品价格total_price:商品总价(如有优惠券等)suggestive_price:推荐价格orginal_price:原价nick:卖家昵称num:库存数量detail_url:商品详情链接pic_url:商品图片链接brand:......
  • 无涯教程-Java - Enumeration 枚举接口函数
    Enumeration接口定义了可以枚举对象集合中的元素的方法。下表总结了Enumeration声明的方法-Sr.No.Method&Remark1booleanhasMoreElements()当实现时,必须在提取更多元素时返回true,而在列举所有元素时返回false。2ObjectnextElement()这将返回枚举中的下一个对象......
  • OCP接口万兆光卡转接PCIE使用心得
    最近在玩OCP万兆光卡,几十块的万兆卡,真的很香。 需要一个OCP到PCIE的转接卡,就可以在台式机上使用了。  转接卡有PCIEx8,PCIEx4,PCIEx1三种接口,参考PCIE接口规范目前常见PCIExpress版本是2.0,3.0,4.0,最新的AMD主板高端也开始支持5.0 OCP网卡单口10Gbps和双口......
  • (三十三)C#编程基础复习——C#接口(interface)
    接口可以看做是一个约定,其中定义了类或结构体继承接口后需要实现功能,接口的特点如下:接口是一个引用类型,通过接口可以实现多重继承;接口中只能声明“抽象”成员,所以不能直接对接口进行实例化;接口中可以包含方法、属性、事件、索引器等成员;接口名称一般习惯使用字母“I”作为开......
  • jmeter 基本请求
    jmeter get请求普通的get请求,是客户端去服务器获取资源的,可以直接在浏览器中访问,获取到服务端的响应的。 post请求,参数为k=v的POST接口post请求方式常用数据格式第一种:content-type:x-www-form-urlencoded,content-type:x-www-form-urlencoded即表单形式,数据格式类型:u......
  • C# TcpClient异常 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时
    //C#TcpClient抛出异常Exceptionthrown:'System.Net.Sockets.SocketException'inSystem.dll由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。经查,winsock错误号:10057网上看到一些文章,通常是收发的时候,错误......
  • Hadoop Yarn Tool接口接入
    项目搭建参考Java实现对HadoopHDFS的API操作1.驱动类packagecn.coreqi.mapreduce.tool;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.util.Tool;importorg.apache.hadoop.util.ToolRunner;importjava.util.Arrays;publicclassWordCoun......
  • 用go如何实现接口抽象
    当涉及到连接不同类型的数据库时,可以用常见的方式去连接对应的数据库,也可以使用接口抽象的方式使代码更具灵活性和可扩展性,更显优雅。非接口抽象方式:如果涉及到多种数据库时,同样的代码显得非常臃肿。packagemainimport"fmt"//直接定义MySQL连接和插入函数funcMySQL......
  • 防御跨站点请求伪造等功能实现
    1.防御跨站脚本攻击(XSS)理论设计跨站脚本攻击(XSS)是一种利用恶意脚本嵌入到Web应用程序中,然后被用户浏览器执行的攻击方式。为防范XSS,我们需要:输入验证:对用户输入进行严格验证,确保只接受合法的数据。输出转义:在将用户输入嵌入到页面之前,对其进行转义,防止浏览器误解其中的脚本......