首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我将DELETE路由器放在GET之后,DELETE端点没有被触发

在一个典型的RESTful API中,路由器(或路由)用于将不同的HTTP请求方法(如GET、POST、PUT、DELETE等)映射到相应的端点(或处理程序)上。根据你的问题描述,你将DELETE路由器放在GET之后,导致DELETE端点没有被触发。

这个问题可能是由于路由器的匹配规则导致的。在大多数路由器中,匹配规则是按照从上到下的顺序进行的。当一个请求到达时,路由器会按照定义的顺序逐个匹配路由规则,直到找到一个匹配的规则或者到达最后一个规则。如果一个规则匹配成功,那么对应的端点将被触发。

在你的情况下,如果你将DELETE路由器放在GET之后,GET请求将会先匹配到GET路由器,而不会继续匹配后面的DELETE路由器。因此,DELETE端点没有被触发。

为了解决这个问题,你可以将DELETE路由器放在GET之前,或者使用更具体的路由规则来确保DELETE请求能够正确匹配到DELETE端点。另外,你还可以使用路由器的优先级设置来调整路由规则的匹配顺序。

总结起来,将DELETE路由器放在GET之后会导致DELETE端点没有被触发,这是由于路由器的匹配规则按照顺序进行匹配的原因。为了解决这个问题,可以调整路由器的顺序或使用更具体的路由规则来确保DELETE请求能够正确匹配到DELETE端点。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringCloud微服务如何优雅停机及源码分析

方式一:kill -9 java进程id【不建议】 kill -9 属于强杀进程,首先微服务正在执行的任务强制中断了;其次,没有通过Eureka注册中心服务下线,Zuul网关作为Eureka Client...端点 首先,在使用的版本 /service-registry 端点默认是启用的,但是是sensitive 的,也就是需要认证才能访问 试图找一个可以单独/service-registry的sensitive...置为false的方式,但在当前用的版本没有找到,/service-registry端点是通过 ServiceRegistryAutoConfiguration自动配置的 ServiceRegistryEndpoint...()设置为必须认证后才能访问,目前找到只能通过 management.security.enabled=false 这种所有端点都关闭认证的方式才可以无认证访问 # 无认证访问 /service-registry...value=UP,其中 value=UP可选,是删除overriddenstatus为UNKNOWN之后,建议status回滚为什么状态,但我当前使用版本里没有这个 value=UP可选参数,就导致发送后

1.9K30

论如何反击用AWVS的黑客

就算你毅力非凡闲的无聊找到了注释的链接,点进去,也只觉得是一个普通的坑人的链接,相信我,的博客上用这招拿了不少师傅的路由器shell,至今没被发现。也只有敬业的扫描器会全部页面找一遍了。...为什么不直接做CSRF? 因为我们需要进行POST的请求。大部分的EXP都需要POST来触发。而因为浏览器的跨域限制,AJAX的POST只能在同域名下的。...为什么不用GET类的EXP来做CSRF,这样既可以攻击到……还可以…… 停,二狗子你闭嘴。...GET类型的可以拿SHELL的EXP好像就没见到过几个,其次,这篇文章是教怎么利用AWVS拿路由器的SHELL,是用POST的EXP。相信大家手上的基本都是POST类型的0DAY。...只是为了模拟不同的ip所以放在了另外一台电脑上 当然,再此之前,请执行 DELETE FROM txt WHERE id>1; 这句sql语句,删掉之前测试的内容,恢复到扫描之前的状态,然后在开始扫描。

1.5K90

WordPress REST API 内容注入漏洞分析

五种请求 之后,WP-API还有这么几种请求(也可以想成是功能吧): HEAD GET POST PUT DELETE 以上表示HTTP客户端可能对资源执行的操作类型。...这个路由有三个端点GET触发一个get_item方法,post数据返回给客户端。 PUT触发一个update_item方法,使数据更新,并返回更新的发布数据。...DELETE触发delete_item方法,现在删除的发布数据返回给客户端。 静态追踪 知道了WP-API的路由信息以及其操作方式,可以根据其运行的思路来看一下具体实现的代码。...也就是防止攻击者恶意构造ID值,但是我们可以发现$_GET和$_POST值优先于路由正则表达式生成的值: ? 这边没有找到ID为123hh的项目,所以返回rest_invalid。...在这边ID参数装换为一个整数,然后传递给get_post。而PHP类型转换的时候回出现这样的情况: ? 所以,也就是说,当攻击者发起/wp-json/wp/v2/posts/1?

3.2K70

REST API 最佳实践

如果你有一个像 https://mysite.com/post/123 这样的端点,用 DELETE 请求删除一个帖子,或用 PUT 或 PATCH 请求更新一个帖子,可能是可以的,但它没有告诉用户在这个集合中可能还有一些其他的帖子...简而言之,你应该让 HTTP 动词来处理端点的工作。因此,GET 检索资源,POST 创建资源,PUT 更新整个资源,DELETE 删除资源,PATCH 更新资源的局部数据。...PUT /articles/{id}:修改文章 PATCH /articles/{id}:修改文章的部分信息 DELETE /articles/{id}:删除文章 id 放在 URL 中而不是 Query...点赞: GET /articles/{id}/like:查看文章是否点赞 PUT /articles/{id}/like:点赞文章 DELETE /articles/{id}/like:取消点赞 REST...DELETE /api/resource { "ids":[1,2,3...] } HTTP 协议标准并没有规定 DELETE 请求不能带 Body,但是 DELETE 请求体在语义上没有意义,一些网关

1.6K20

使用Spring Boot设计和实现REST API

REST端点用于集成应用程序或服务器端向客户端提供服务。在本文中,介绍基于CRUD的SpringBoot来设计和实现REST端点。...假设有一个客户数据,创建一个相应的Spring REST Controller来访问客户数据。为了简单起见,只关注控制器类而不是整个spring应用程序。..., save, update and delete 方法 } 客户资源的所有端点都以/ customers开头。...所有这些方法都有助于设计简单的REST端点,因为这是标准的,所以每个人都可以理解它们。 GET GET方法用于访问资源。要根据ID获取客户记录,我们可以使用/ customers / {id}等端点。...201 - 创建:没有用于更新的标准HTTP代码,因此我们可以使用201进行更新。 DELETE 此方法应用于删除请求。此请求的端点是/ customers / {id}。

1.8K30

使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由和HTTP方法

属性结合URI模板一起使用,就可以把请求映射到Controller的Action上面。 例如: ? 官方文档:路由基础知识。...但是它们的HTTP方法则不同,一个是GET,一个是DELETE。下面我们就来看看那些动作应该对应哪些 HTTP 方法。 POST 需求:添加一个公司信息。 需求图解: ?...当公司资源创建好之后,这个action应该返回新创建的资源以及可以获取该资源的路径标识,也就是api/companies/{新资源的id}。...文字解释: 我们想要通过 api/companies/{companyId} 这个标示来获取一个公司资源,这里就需要使用HTTP GET 方法,放在一起就是 GET api/companies/{companyId...当搜索资源的工作结束后,GET请求会返回匹配该路径(包括参数部分)的资源。 DELETE 需求:删除一个公司 需求图解: ? HTTP请求图解: ?

1.2K10

REST API 设计最佳实践:如何构建、设计和使用 API ?

(操作或方法):最常见的是GET、POST、PUT、PATCH和DELETE。...注意到:param 是一个URI参数(如ID或缩写)的占位符,你第一个想法可能是创建类似于这个的端点GET: /books/:slug/generateBookCover/ 但是,在这里GET方法在语法上足以说明我们正在获取...个人建议使用复数形式。为什么?因为它非常适合所有类型的端点可以看到 GET /book/2/ 是没问题的。但是 GET /book/ 呢?我们是在获取图书馆里唯一的那本书、其中几本还是全部?...此类内容应放在查询字符串中。因此最后, 用户可以像这样获取“包含20个项目、已发布书籍第二页”: GET: /books?...虽然没有创建资源(尚未),但这没问题。 有两个主要场景,觉得202 Accepted特别适用: 如果资源将在未来处理后创建 — 例如:在某个工作/流程完成之后

36240

13 个设计 REST API 的最佳实践

REST 是面向资源的,一个资源一个 URI 所标识,比如 /articles/。 端点(endpoint),一般指动词与 URI 的组合,比如 GET: /articles/。...在业务领域,我们常常可以动词和 CRUD(增删查改)关联起来:GET 代表查,POST代表增,PUT 和 PATCH 代表改(注: PUT 通常代表整体更新,而 PATCH 代表局部更新),而 DELETE...这里推荐使用后者。为什么呢?因为复数形式可以满足所有类型端点的需求。 单数形式的 GET /article/2/ 看起来还是不错的,但是如果是 GET /article/ 呢?...这里提供两种方案: 第一种方案通过在 URI 中,嵌套的资源放在所关联的资源后边来进行描述,比如: GET: /authors/12/articles/ 一些人推荐这种方案的理由是,这种形式的...某天,某个 API 端点集成到项目中,但是总是收到 500 Internal Error 的错误,调用的端点差不多看起来这样: POST: /entities ``` 调试一段时间之后

3.5K20

好 RESTful API 的设计原则

一般来说,GET请求可以浏览器缓存(通常也是这样的)。例如,缓存请求头用于第二次用户的POST请求。HEAD请求是基于一个无响应体的GET请求,并且也可以缓存的。...但是跟很多不同的第三方开发者一起工作后,可以很明确的告诉你,在请求头里面包含版本信息远没有放在URL里面来的容易。 分析 所谓API分析就是持续跟踪那些正为人使用的API的版本和端点信息。...当然第三方开发者的通知流程可以以某种条件自动触发,例如每当一个过时的特性上发生10000次请求时就发邮件通知开发者。 API根URL 无论你信不信,API的根地址很重要。...如下所示,请注意把HTTP动词都放在了虚构的API之前,正如将同样的注解放在每一个HTTP请求头里一样。...当然没有一个HTTP动词能表示正在解雇一个人,但是你可以使用DELETE一个动物园里的雇员来达到相同的效果。

97020

通过 Laravel 创建一个 Vue 单页面应用(五)

'); Route::delete('/users/{user}', 'UsersController@destroy'); }); 在前端删除用户 我们通过编辑 UsersEdit.vue...*'); 如果你数入一个无效的 URL 比如 /does-not-exist,你会看到像下面的一堆东西: Vue路由器触发了会将浏览器重定向到 /404 的通配符路由规则。...API客户端选项 尽管我们奉献的 users.js 在小型应用程序中,HTTP 客户端可能认为是有点小题大做了,认为分离已经为我们提供了很好的服务,因为我们在多个组件中使用了 API 模块。...`); }, }; 现在,如果想定制整个模块的工作方式而不影响方法,可以在以后用一些配置替换掉 baseURL。...接下来是什么 我们学习了如何通过 Vue 路由器在前端删除用户并对成功删除做出响应.。

4.4K20

移动物联网模块之FOTA更新攻击

successfully, installed version %s\n",cmd); 供应商使用的协议允许上传,但也可以实现下载或读取功能,可能会泄露当前固件 在线更新 无线更新固件,即FOTA更新,是一种许多嵌入式设备用于远程...(差异,插入,删除,链接等)的信息 可变部分取决于上述信息(例如,旧的和新的CRC32文件,未使用的插入数据等等) LZMA TableOfContents(TOC)(需要在头中标有未压缩的大小,并且没有有效载荷结束标记...FwUpdate Add=*&Delete=*&Exec=*&Get=*&Replace=*...其他部分还告诉我们有关同步的不同端点以及如何下载新的固件二进制文件: DMAcc ...我们将不集中于对这些模块进行后门程序的拦截攻击,而将重点放在请求的端点上 此外,我们还可以按以下方式检索BASIC Auth,来进行同步或获取二进制文件: <name

1.1K30

老板与秘书的故事理解CORS(跨域),真的超级简单

背景 一天下午,正认真的上(摸)班(鱼)呢,一个前端开发同事找到运维团队“后端服务是不是有什么异常啊,为什么的访问不通呢?”“接口地址拿来~”运维工程师使用本地的postman进行调用。...您可能已经发现,我们的后端代码根本没有提及 CORS。确实如此,到目前为止我们还没有实现任何 CORS 配置。但这对于浏览器来说并不重要:它无论如何都会尝试发出预检请求。...Not Allowed,这是有道理的,因为我们还没有定义我们后端的 OPTIONS 端点。...OPTIONS 端点以及一个处理它的函数: ......我们到这就理解了CORS是一种允许当前域(domain)的资源(比如http://localhost:8888)其他域(http://localhost:3333)的脚本请求访问的机制,通常由于同域安全策略

11810

使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01

api/values/5 [HttpDelete("{id}")] public void Delete(int id) { } } 为了更好地度量,还添加了一个基本的健康检查端点。...将在稍后的文章中探讨这些代码。 为了更好地理解端点图,我们需要了解并非所有的节点都是相同的。在下一节中,我们深入研究这个简单图中的不同类型的节点,然后研究一个更好的图形表示(至少在我看来!)...在下一篇文章中,展示如何自动为自己的ASP.NET Core应用程序生成端点图。 总结 在这篇文章中,介绍了用于描述图形的DOT语言,并展示了如何使用在线编辑从图表中创建图像。...然后,展示了如何ASP.NETCore 3.x应用程序中的端点路由表示为有向图。描述了端点图中不同节点和边缘之间的差异,并调整了图形的显示以更好地表示这些差异。...在后面的文章中,展示如何为应用程序生成自己的端点图,如何自定义显示,以及如何做的不仅仅是查看图形。

2.3K30

你真的知道你喜欢REST而不是RPC的原因吗?

有关REST和RPC的讨论或争论一直活跃在各个技术角落,最近也关注了不少,看了很多人的看法之后意识到这个问题可以帮助我照亮自己的知识死角:为什么喜欢REST的请求风格(资源导向)比RPC(操作导向...就目前所知,对于这种风格基本上没什么明确的约定和规则。 端点(或叫资源)包含要调用的操作的名称。 这种风格的API基本上只使用两个http动词,那就是你熟悉的GET和POST。...为了聚焦本文的主题,我们长话短说:使用REST API,你是数据作为资源(resource),你通过HTTP协议使用正确的HTTP动词操作,注意,是正确的动词: 端点上包含你要操作的资源。...可预测性和语义 使用RPC,语义大部分时候是依赖在端点上的,并且没有对其含义的全局共享理解,什么意思呢?就是没有一个规范和约定。...至少,现在知道为什么喜欢基于资源的这种模式(REST)了:其可预测性以及充分利用HTTP协议特性。 你呢?

1.2K60

REST API有关幂等性等11条最佳实践

常用文本放在 URL 末尾会让编写客户端的人感到厌烦。 无论如何,JSON 应该是默认值。...您可以随时添加totalCount或hasMore字段,老客户端继续工作。如果您的端点返回顶级数组,您将需要一个全新的端点。...按照字面解释,如果向不存在的 ID 提出 GET/PUT/DELETE 等请求,则应返回 404。请不要这样做--听我说完。...在现实生活中就遇到过这种情况。 当删除一个不存在的东西时,你可以简单地让 DELETE 返回 200(或 204)OK,这是有道理的,而且认为这是 DELETE 可以接受的答案。...的建议是选择另一种 400 级错误代码,客户可以将其理解为 "知道你要什么,但我没有"。使用的是 410 GONE。

19420

用zabbix和openwrt构建低成本的分布式公网监控

目的:用zabbix和放在异地分公司内网的刷了openwrt的路由器以及微信接口来构建一套分布式的公网监控报警系统。...难点:1、一个网站如果挂了,所有分布式节点都会报警,那么的微信是不是会被吵死?     2、分布式节点没有公网端口,怎么样要增加或者减少网址怎么办?    ...的处理方式:1&3 :server收到消息,并触发trigger之后,把相关信息写入数据库,在对数据库信息进行处理 用的逻辑有以下几条    (1) 一分钟之内 触发告警并且恢复的不推微信    (...2) 一分钟内,所有触发并且没有恢复的报警合并在一起推微信,并且一个网址的多个节点合并成一起报出来,参看前图  2、每个节点每小时访问我的server 来同步crontab 的内容,并且每天凌晨重启 附代码...ZABBIX HOSTNAME -k "time[$1]" -o $TIME &>/dev/null find /etc/zabbix/monitor_scripts/timefile -mmin +5 -delete

1.8K10

Python的描述符

1、描述符的定义  描述符是与特定属性互相绑定的一种协议,通过方法触发修改属性,这些方法包括__get__(),__set__(),__delete__().这些方法定义在类中,即可实现描述符...对x的操作交给Foo()代理,触发其中的set函数,打印其中self——类Foo类的信息,instance——代理的对象信息,value——代理的值修改。  ...第19行对x的属性访问,理所应当,触发其代理的get方法,self——类Foo类的信息,instance——代理的对象信息,owner——见名知意,代理属性的最高拥有着,即Test类 其实当一个类中定义了...为什么触发了一个get。t.y并没有触发get方法。why???   ...__get__(t, Test), 但是呢,实际上 Test 并没有 y这个属性,y 是属于实例对象的,so,忽略。

51220

Django+Vue项目学习第三篇:使用axios发送get请求,解决跨域问题,调通前后端

通过前两篇,已经把后端和前端的架子搭起来了,并且后端写好方法返回数据 本篇详细介绍如何使用axios发送get请求,并且解决django+vue的跨域问题 前端页面如下 先分析下的需求:...(1)希望点击不同按钮,触发不同的请求,例如点击【手机号码】,会调用后台生成手机号的方法;点击【身份证ID】,会调用后台生成id的方法; (2)目前页面有3个按钮是需要绑定事件来触发后台请求的,最好...判断前端点击的哪个按钮来触发不同请求 如果想知道前端点击的是哪个按钮,可以在定义函数时传入event参数,获取浏览器的event对象 在methods下定义一个函数create_data(event...,所以我们也放在这里 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware...'user-agent', 'x-csrftoken', 'x-requested-with', ] # 允许的http请求 CORS_ALLOW_METHODS = [ 'DELETE

2.9K20
领券