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

为什么savon client.call使用带有有效负载的GET请求而不是POST?

savon是一个用于SOAP(简单对象访问协议)的Ruby库,用于构建和访问Web服务。在SOAP中,客户端通过发送XML消息给服务器来调用远程方法。

在savon中,client.call方法用于发送SOAP请求。根据SOAP规范,SOAP请求可以使用HTTP的GET或POST方法发送。savon默认使用带有有效负载的GET请求而不是POST的原因有以下几点:

  1. 可缓存性:GET请求可以被缓存,而POST请求不会被缓存。如果请求的结果是幂等的(即多次请求返回相同的结果),使用GET请求可以提高性能,因为结果可以被缓存并在需要时重复使用。
  2. 可见性:GET请求的参数和URL可以在浏览器的地址栏中可见,这对于调试和测试非常有用。而POST请求的参数和数据在请求体中,不容易直接查看。
  3. 互操作性:GET请求是HTTP协议的基本方法之一,几乎所有的Web服务器和客户端都支持GET请求。相比之下,一些特殊的网络环境或防火墙可能会限制或阻止POST请求。

尽管savon默认使用GET请求,但在某些情况下,使用POST请求可能更合适。例如,当SOAP请求的有效负载非常大或包含敏感信息时,使用POST请求可以更安全地传输数据。

总结起来,savon client.call使用带有有效负载的GET请求而不是POST的原因是为了提高性能、可见性和互操作性。但在特定情况下,可以根据需求选择使用POST请求。

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

相关·内容

API OWASP 标准

,但不是关于确切错误(堆栈跟踪或错误文本)非常清晰普通消息,这可能会将内部实现暴露给 API 使用GET: 200 OK 和 items -array 作为空数组 GET:204 空响应,正文中没有任何内容...POST: 200 OK 更新或提交不创建新资源 201 -response 结合创建资源标识符 DELETE: 204 OK 删除资源成功时 本土化 带有时区 UTC 日期和时间格式(ISO...如果使用 ISO 标准中地理坐标? 有效负载本地化支持或可通过 API 访问本地化值? 支持错误消息本地化吗?...规范包含标准格式请求和响应示例,API 文档根据规范、模式和示例自动生成 POST, PUT: 201 为创建新资源创建 来自客户端 400 个错误请求,例如缺少必需查询参数 白名单:POST、...具有最长端点层次结构和多个长值查询参数 GET 请求不超过 2000 URI 长度?(一些老客户端和浏览器可能有这种限制,虽然不是官方限制,新客户端可以很好处理)

2.6K20

Go 每日一库之 jsonrpc

请求对象包含以下 3 个属性: method:请求调用方法; params:一个数组表示传给方法各个参数; id:请求 ID。ID 可以是任何类型,在收到响应时根据这个属性判断对应哪个请求。..., "id": 1} 响应:{ "result": "Hello JSON-RPC", "error": null, "id": 1} 使用 zookeeper 实现简单负载均衡 下面我们使用zookeeper...实现一个简单客户端侧负载均衡。...zookeeper中记录所有的可提供服务服务器,客户端每次请求时都随机挑选一个。我们示例中,请求必须是无状态。...其实,在实际项目中,Proxy一般是一个独立服务器,不是放在客户端侧。上面示例这样处理只是为了方便。 总结 RPC 底层可以使用各种协议传输数据,JSON/XML/Protobuf 都可以。

1.6K30

go标准库rpc实践

什么是RPC RPC(Remote Procedure Call)即远程过程调用,是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络细节应用程序通信协议。...client端调用rpc服务端提供方法之前,先于rpc服务端建立连接,使用Call方法调用远程方法。 在客户端代码中,我们分别使用client.callclient.call。...client.call是同步调用,client.go是异步调用。为什么会这样呢。这里我查看了源码。通过源码可以看到,client.call底层就是调用client.go。...内部使用一个chanl等待client.go,所以client.call是同步调用。...这两个使用根据自己使用场景进行选择,注意下就可以了。 总结 好啦,这一篇就结束了。。。

42910

Go语言之GRPC

RPC框架就是把我刚才说这几点些细节给封装起来,给用户暴露简单友好API使用。 RPC与Socket区别: RPC(远程过程调用)采用客户机/服务器模式实现两个进程之间相互通信。...http协议中POST/GET/PUT/DELETE等方法和一个可读性强URL来提供一个http请求。... RPC 则可以不基于 HTTP协议。 因此,如果是后端两种语言互相调用,用 RPC 可以获得更好性能(省去了 HTTP 报头等一系列东西),应该也更容易配置。...2) Json RPC与Tcp RPC比较: JSON RPC是数据编码采用了JSON,不是gob编码,其他和上面介绍RPC概念一模一样,json-rpc是基于TCP协议实现,目前它还不支持HTTP...err = client.Call("HttpRpcServer.Print", &a, &outStr) if err !

54010

sqlmap命令详解pdf_SQLmap

id=1” –method=get –banner 2.2 设置 POST 提交参数 默认情况下,用于执行HTTP请求HTTP方法是GET,但是您可以通过提供在POST请求中发送数据隐式地将其更改为...注入点可以通过在带有选项-uGET参数值、 带有选项–data数据POST参数值、 带有选项-HHTTP(header)头值、 带有选项-AUser_Agent头、 用户代理、 引用和/或cookie...在执行有限数量测试(请求)时,默认值为1。1~5探测复杂逐步提升。 sqlmap使用有效负载在文本文件xml/payload .xml中指定。...这个选项不仅会影响到哪个有效负载sqlmap尝试,还会影响到在考试中取哪个注入点:GETPOST参数总是被测试,HTTP Cookie头值从第2级测试,HTTP用户代理/引用头值从第3级测试。...在某些情况下,比如UPDATE语句中SQL注入,注入基于or有效负载可能导致表所有条目的更新,这肯定不是攻击者想要

2.4K40

吐血整理!一文搞懂计算机网络面试

GetPost请求区别 12. GETPOST 方法都是安全和幂等吗? 13. 重定向和转发区别 14. Cookie和Session区别 15. 浏览器输入URL过程 16....客户端应继续其请求。 200:OK 一一 请求成功。一 般用于GETPOST请求。 301:Moved Permanently 一一 永久重定向。 302:Found 一一 暂时重定向。...GetPost请求区别 GET POST HTTP规范 GET用于信息获取 修改服务器上资源请求 可见性 数据在URL中对所有人可见 数据不会显示在URL中 安全性 与post相比,get安全性较差...GETPOST 方法都是安全和幂等吗? 先说明下安全和幂等概念: 在 DSA协议里,所谓「安全」是指请求方法不会「破坏」服务器上资源。...区域传送使用TCP不是UDP,因为数据同步传送数据量比一个请求应答数据量要多得多。 TCP是一种可靠连接,保证了数据准确性。

57330

解决 DOM XSS 难题

然后这个 URL 将在 POST 请求使用。响应将被解析为 JSON 并设置window.settingsSync。...但是,我怎么能操纵domain来匹配我恶意服务器不是*.settingsSync.com呢?...现在domain指出bad-.my.website,攻击者控制有效域向 POST 请求提供了恶意负载。 我malicious.php在我服务器上创建了通过捕获来自源目标的响应来发送有效响应。...... } } 通过处理这些响应数据,我意识到它introduction被注入到页面中没有进行任何清理。如果我可以控制 GET 请求目的地以及随后响应,则有可能导致 XSS。...通过使用这个绕过来创建一个开放重定向,我将最终 XSS 有效负载保存.companyb.com在我 Web 服务器文档根目录中。

1.8K50

针对WordPress攻击调查

攻击者可以利用漏洞或泄露凭据进行攻击,向目标网站上/wp-log in.php发送POST请求来完成。 ?...成功登录后,攻击者可具有管理员权限,并进行如下操作: 安装带有后门自定义主题 安装插件以上传文件 这两个操作通常在成功获得管理员权限后使用,可以选择更改管理员密码或创建新管理员帐户。...常见方法是使用公共主题并嵌入带有远程代码执行(RCE)功能自定义后门,文件上传插件允许攻击者直接上传有效负载。 利用一个后门部署另一个具有类似功能后门是常见操作。...当有效负载/命令/代码编码在COOKIES或POST数据中时,通过使用GETPOST请求来完成部署。解码程序会部署在先前后门中。还观察到攻击者会patch已经存在.php文件使恶意请求更加隐蔽。...感染WordPress网站搜索引擎优化(SEO) 受感染WordPress站点另一个实例是搜索引擎优化(SEO),已发现部署PHP脚本在GET请求中接受关键字。 ?

2K20

HTML注入综合指南

但是,当客户端单击*显示为网站官方部分*有效负载时,注入HTML代码将由浏览器执行。...** [图片] 现在,让我们尝试注入恶意负载,该负载将在此目标网页上**创建***虚假用户***登录表单**,从而将捕获请求转发到**我们IP上**。...使用GET方法,我们从特定来源**请求数据**,POST方法用于**将数据发送到服务器**以创建/更新资源。...让我们尝试再次破坏此网页外观,但这一次我们将添加图片不是静态文本作为 1<img src= "https://www.ignitetechnologies.in/img/logo-blue-white.png...[图片] 进入HTML部分,他只是<em>使用</em>**$ url**变量设置了**echo**,<em>而</em>没有任何特定<em>的</em>验证,以便显示<em>带有</em>URL<em>的</em>消息。

3.7K52

为什么我们要改用gRPC

虽然它已经存在好几年了,但是我还没有在网上找到很多关于人们为什么使用或不使用信息,所以我决定写一篇文章来解释我们使用gRPC原因。...double longitude = 2; } 使用这个文件,你可以使用protoc编译器生成客户机和服务器代码,并且可以开始编写提供或使用API代码。 那么,为什么这是一件好事,不是额外工作?...它更冗长,结构也更复杂(八个缩进级别不是一个)。 使用OpenAPI规范进行验证也比使用gRPC更加困难。...它们发送POST请求来设置搜索,然后发送重复GET请求来检索结果。响应包含一个字段,该字段指示搜索是否完成。这可以很好地工作,但不优雅,并且需要服务器使用诸如Redis之类数据存储来保存中间结果。...对我们来说,一个更大问题是Kubernetes负载平衡器(用于HTTP服务)在gRPC上不能很好地工作。基本上,gRCP需要应用程序级负载平衡,不是TCP连接级负载平衡。

2.4K20

不同版本浏览器前端标准兼容性对照表以及CORS解决跨域和CSRF安全问题解决方案

4.JSONP  由于允许HTML元素从其他域检索和执行内容,因此页面可以绕过同源策略,并通过加载返回JSONP有效负载资源从不同域接收JSON数据。...JSONP有效负载由预定义函数调用包装内部JSON有效负载组成。当浏览器加载脚本资源时,将调用指定回调函数来处理包装JSON有效负载。...为什么JSONP仍然是强制性 为什么JSONP仍然是强制性 解决方案 使用JSONP是确保与旧浏览器良好兼容性并处理错误配置防火墙/代理问题唯一解决方案。...CSRF漏洞影响 以下列表假定您没有违反RFC2616第9.1.1节,通过使用GET请求进行状态更改操作。...使用POST表单标签 Ajax / XHR调用 CSRF防御建议摘要 我们建议基于令牌CSRF防御(有状态/无状态)作为缓解应用程序中CSRF主要防御。

1.7K40

Linkerd 2.10(Step by Step)—使用每个路由指标调试 HTTP 应用程序

您应该会看到 booksapp 命名空间中所有部署都显示出来了。会有成功率、每秒请求数和延迟百分位数。 这很酷,但你会注意到 webapp 成功率不是 100%。这是因为流量生成器正在提交新书。...Linkerd 使用请求 Host 头将服务配置文件与请求相关联。...路由是包含方法(例如 GET)和匹配路径正则表达式简单条件。这允许您将 REST 风格资源组合在一起,不是看到一个巨大列表。路由名称可以是您喜欢任何名称。...viz routes 命令一部分, 不是 linkerd viz stat。...我们可以通过观察路由有效成功率下降到 100% 以下来看到超时正在起作用。

50930

Web 应用安全性: HTTP简介

GETPOST 正如我们前面看到,HTTP请求以一个特殊请求行开始: 首先,客户端告诉服务器它正在使用什么动词来执行请求:常见 HTTP 动词包括 GETPOST,PUT 和 DELETE...另一个区别在于这些动词带有的副作用:GET 是一个幂等动词,意思是无论你要发送多少个请求,你都不会改变网络服务器状态。...相反,POST 不是幂等:对于你发送每个请求,你可能正在更改服务器状态(例如,考虑发布新付款 - 现在您可能理解为什么站点要求你在执行时不刷新页面 交易)。...Web 服务器不记 录HTTP标头或主体,因为要保存数据太大 - 这就是为什么通过请求主体不是URL发送信息通常更安全。...从这里我们可以得出 POST(和类似的,非幂等方法)比 GET 更安全,即使更多使用特定动词时数据发送方式不是特定动词本身比其他动词更安全:如果你 将敏感信息包含在 GET 请求主体中,然后你不会遇到比使用

66420

基于 SVG 存储型 XSS

将 self XSS 转换为有效 XSS 将是一个挑战。 可以在仪表板外部共享一个参数是profile picture url. 所以我需要找到一种方法来上传恶意文件不是 jpeg。...绕过过滤器 只有可以上传有效文件是 jpeg 或 png 文件。 文件是如何被验证? 他们正在创建一个仅发送图像标头 api POST 请求。...如果标头有效,则有另一个 POST 请求正在上传实际文件。没有对第二个 POST 请求进行验证。...在这里,我们可以只发送一个有效 png,然后在第二个请求中,我们可以将 png 内容替换为 svg 有效负载。 image.png 成功绕过检查并上传图片后,没有提示框等待我关闭它。...它加载了原始 svg 图像。 image.png 这有什么影响? 我们可以编写将 cookie 数据发送到服务器 XHR 请求不是调用 alert。

1.5K30

关于HTTP报文请求方法和状态响应码

尽管TRACE可以很方便用于诊断,但是它确实也有缺点,它假定中间应用程序对各种不同类型请求GET、HEAD、POST等)处理是相同。...很重要一点是,客户端只是对某个特定资源来解析这条响应不是对所有请求,甚至所有具有相同资源服务器都通过这个代理进行;如果客户端错误让代理介入了某个请求,可能会引发破坏性行为,而且会造成安全漏洞...当HTTP/1.0客户端发起一个POST请求,并在响应中收到302重定向状态码时,它会接受Location首部重定向URL,并向那个URL发起一个GET请求不会向原始请求中那样发起POST请求)。...HTTP/1.1规范您使用了303状态码来实现同样行为(服务器发送303状态码来重定向客户端POST请求,在它后面跟上一个GET请求)。...服务器没有与客户端可接受URL相匹配资源时,使用此代码。通常,服务器会包含一些首部,以便客户端弄清楚为什么请求无法满足。

1.3K30

软件测试面试常考题目总结

主要运用黑盒测试方法,对系统主要流程、重要功能进行有效性测试,验证所测试软件是否满足需求规格说明书列出要求。 3、开发说不是bug怎么办?...是否在不同平台正常运行,是否有和客户理解不一致地方,是否有改进地方。 9、什么是软件测试?目的? 使用人工或自动化手段运行程序,为了发现软件错误执行检验一个过程。...功能、性能、可靠性、安全性、负载测试,压力、安装/卸载、启动/停止、兼容、互联测试,文档、回归、可使用性、容量测试 16、测试计划工作包括? 是对工作内容有效组织和规划,保证测试工作有效展开。...29、getpost请求? 1)url可见性:get,参数url可见;post,url参数不可见。 2)数据传输上:get,通过拼接url进行传递参数;post,通过body体传输参数。...3)缓存性:get请求是可以缓存post请求不可以缓存。 4)后退页面的反应:get请求页面后退时,不产生影响;post请求页面后退时,会重新提交请求

40320

Linkerd 通过 ServiceProfile 实现超时和重试

:进行调用代理是执行这些功能代理,不是服务器端代理。...如果你服务器是网格,但你客户端不是的,那么将不会在两者之间调用中启用这些功能! 这三个特性一起使用效果最好。没有重试,超时没有什么价值;如果没有负载均衡,重试几乎也没有什么价值。...Linkerd 通过使用重试预算不是每个请求限制来设置重试参数,将重试风暴可能性降到最低。...超时可能会产生相反效果:这取决于具体返回时间,一个最终成功返回超时请求可能会使实际成功率高于有效成功率,因为服务器将其视为成功,客户端只看到失败。...因为 POST 请求几乎总是在请求 body 中包含数据,重试请求意味着代理必须将该数据存储在内存中。因此,为了保持最小内存使用,代理不存储 POST 请求 body,并且它们不能被重试。

68420

聊聊分布式会话及实现方案

为什么要产生Session http协议本身是无状态,客户端只需要向服务器请求下载内容,客户端和服务器都不记录彼此历史信息,每一次请求都是独立为什么是无状态呢?...Cookie产生 当用户首次使用浏览器访问一个支持Cookie网站时候,用户会提供包括用户名在内个人信息并且提交至服务器;接着,服务器在向客户端回传相应超文本同时也会发回这些个人信息,当然这些信息并不是存放在...Session Stick 为什么这种方案到目前还有很多项目使用呢?因为不需要在项目代码侧改动,而是只需要在负载均衡侧改动。...安全:请求中发送token不再是发送cookie能够防止CSRF(跨站请求伪造)。 可提供接口给第三方服务:使用token时,可以提供可选权限给第三方应用程序。...Access-Control-Allow-Methods: GET, POST, PUT,DELETE // 然后用户从a.com携带有一个通过了验证token访问B域名,数据和资源就能够在任何域上被请求

16310
领券