首页
学习
活动
专区
圈层
工具
发布

我对RPC的理解

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。...从字面上我们是大概了解到是从一个服务器中调用另一个服务器中的方法,使用它提供的功能。...RPC(远程过程调用)是什么 简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。...>   2.3、建立跨域代理脚本   跨域请求解决:为避免同源策略,可使用服务器端代理即写个代理脚本放入自己的域中,使用ajax来访问代理脚本,脚本远程访问api接收数据,再将数据返回给需要的地方(好处...+(需要访问的api的域名+api具体的某个接口) 24 xhr.open('post','.

99440

API网关在API安全性中的作用

目前在使用微服务时,客户端必须处理微服务体系结构带来的所有复杂性,例如聚合来自各种服务的数据,维护多个端点,客户端和服务器之间的联系增加以及对每个服务进行单独的身份验证等 ,同时客户端对微服务的依赖性也直接导致了重构服务的困难...访问控制几乎能扩展到建立其他策略,包括对某些来源的API调用的速率限制,甚至是通过API访问所有或某些资源的要求。 API网关的访问控制功能通常从身份验证机制开始,以确定任何API调用的实际来源。...对于服务来说,适当地限制允许动词很重要,这样只有允许的动词请求才能起作用,而其他所有动词都将返回正确的响应码(例如,403 Forbidden)。 讯息大小 有消息大小限制是很好的。...如果你十分确认知道不会接收大文件消息(例如,超过2MB),那限制大小过滤掉大文件消息能尽可能避免一些未知攻击。 SQL注入 SQL注入保护使你可以阻止可能导致SQL注入攻击的请求。...JSON威胁防护 JavaScript对象表示法(JSON)容易受到内容级别的攻击。此类攻击试图使用巨大的JSON文件淹没解析器,并最终使服务崩溃。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OpenAPI 标准规范,了解一下?

    用户使用API来访问 Service,本质上是想通过对某种资源执行特定的操作来完成一个业务动作。对于资源有两个关键点:一是要有统一的资源模型;二是要明确资源关系。...URL中不要包含文件(脚本)的扩展名。例如 .json 之内的就不要出现了,对于接口来说没有任何实际的意义。...比较常用的 HTTP/1.1 动词有下面5个: GET:从服务器取出资源(一项或多项)。 POST:在服务器新建一个资源。 PUT:在服务器更新资源(客户端提供改变后的完整资源)。...当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。 502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。...[9]状态码,并在 body 中说明具体的错误信息;而没有被授权访问的资源操作,需要返回 403 Forbidden[10] 状态码,还有详细的错误信息。

    3.4K41

    Restful API 设计指北

    针对于用户客户端请求,服务器响应尽量有 状态码 Status Code 及详细解释。...),导致服务端无法处理 401 Unauthorized 请求的资源需要认证,客户端没有提供认证信息或者认证信息不正确 403 Forbidden 服务器端接收到并理解客户端的请求,但是客户端的权限不足...Error 服务器内部错误,导致无法完成请求的内容 503 Service Unavailable 服务器因为负载过高或者维护,暂时无法提供服务。...基本的思路就是尽可能提供更准确的错误信息:比如数据不是正确的 json,缺少必要的字段,字段的值不符合规定…… 而不是直接说“请求错误”之类的信息。...状态码,并在 body 中说明具体的错误信息;而没有被授权访问的资源操作,需要返回 403 Forbidden 状态码,还有详细的错误信息。

    1K20

    【Java学习】API接口数据规范

    当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。 常见的HTTP状态码有: 200-请求成功。...403-服务器拒绝访问。验证身份通过了,但是资源没有权限进行操作。 404-请求资源(网页等)不存在。 500-内部服务器错误。 504-网关超时。...所请求的资源必须通过代理访问。 400 客户端请求的语法错误,服务器无法理解。 401 用户身份认证失败。 402 保留,将来使用。 403 验证身份通过了,但是资源没有权限进行操作。...502 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 503 由于超载或系统维护,服务器暂时的无法处理客户端的请求。...3.3、返回数据体 json格式,根据不同的业务有不同的json体,可以设计一个返回体类Result @Data public class Result { private Integer

    1.5K20

    使用Python jinja2和云函数做页面渲染

    由于使用了Vue,导致SEO出现困难。 当时提出了《单页面Vue网站无服务端实现静态化SEO》, 但只是一个设想,现在要具体实现。...编码 scf:腾讯云无服务器云函数 cos: 腾讯云对象存储 scf获取json 所有的scf主函数都必须有event和context参数,scf接收到的post内容就在event['body']...中 def main_handler(event, context): print(event['body']) scf渲染 这里是从cos中读取模板页面,然后渲染获得html页面。...(json_meta)) return ret scf保存到cos 保存html页面需要两个信息,一个是html文件内容,另一个是保存路径。...由于不太会用api网关,导致使用api网关触发的云函数时总是出错, {"errno":403,"error":"Invalid scf response. expected scf response

    1.6K30

    Python Requests代理使用入门指南

    你是否曾因为代理服务器配置不当而遭遇403错误代码?或是在测试API时收到未授权访问错误?这些常见的客户端错误不仅令人头疼,还会影响工作效率。...GET 方法通常用于请求数据,例如从服务器下载网页或从 API 获取信息。另一方面,POST 方法则主要用于发送数据,如用户的表单提交或 JSON 数据发送。...当客户端发出请求时,它并不会直接连接到目标服务器,而是将请求发送至代理服务器。在接收到这个请求后,代理服务器会进行处理,并可能会检查是否有必要的权限以转发请求。...处理403错误代码 当用户配置代理并尝试访问某些资源时,可能会遇到403错误代码,这通常表示请求被拒绝,因而造成了访问错误。引起此类错误的原因有很多,但通常与权限设置有关。...针对403错误,用户应首先检查代理服务器的访问控制规则,确保他们有足够的权限。如果权限合理,问题可能出现在用户的凭证中,如果凭证无效,服务器将拒绝访问。

    1.6K10

    一文读懂 HTTP 响应状态码:从 1xx 到 5xx 全解析

    今天来分享一下HTTP 响应状态码 一文读懂 HTTP 响应状态码:从 1xx 到 5xx 全解析 HTTP 响应状态码是客户端与服务器沟通的“通用语言”。...❌ 客户端错误 4xx 请求有误或无权限 客户端自查 ⚠️ 服务器错误 5xx 服务端内部故障 服务端修复 1️⃣ 1xx:信息性响应(Informational) 含义:请求已被接收,服务器正在处理中...常见代码 400 Bad Request:请求格式错误(如 JSON 解析失败、参数缺失)。 401 Unauthorized:未认证(缺少 Token、Session 失效)。...403 Forbidden:已认证但无权限(如普通用户访问管理员接口)。 404 Not Found:URL 对应资源不存在(路径错误、资源被删)。...安全建议: 避免在 403/404 响应中泄露敏感信息(如“该用户不存在” vs “密码错误”)。 对 401 应引导用户重新登录;对 403 应提示权限不足而非技术错误。

    1.2K21

    HTTP API 设计指南HTTP API 设计指南

    依赖于重定向的客户端访问不仅会导致双倍的服务器负载,还会使 TLS 加密失去意义,因为在首次非 TLS 调用时,敏感信息就已经暴露出去了。...为了避免API的变动导致用户使用中产生意外结果或调用失败,最好强制要求所有访问都需要指定版本号。请避免提供默认版本号,一旦提供,日后想要修改它会相当困难。...: 用户未认证,请求失败 403 Forbidden: 用户无权限访问该资源,请求失败 当用户请求错误时,提供合适的状态码可以提供额外的信息: 422 Unprocessable Entity: 请求被服务器正确解析...,但是包含无效字段 429 Too Many Requests: 因为访问频繁,你已经被限制访问,稍后重试 500 Internal Server Error: 服务器错误,确认状态并报告问题 对于用户错误和服务器错误情况状态码...不同编程语言客户端使用API的例子。 提供可执行的例子 提供可执行的示例让用户可以直接在终端里面看到API的调用情况,最大程度的让这些示例可以简单的使用,以减少用户尝试使用API的工作量。

    3.2K31

    【RESTful】RESTful API 接口设计规范 | 示例

    query-string][#author] shceme 指定低层使用的协议(如http,https,ftp) host 服务器的IP地址或域名 port 服务器端口,默认为80 path 访问资源的路径...GET : 从服务器去除资源 POST :在服务器新建一个资源 PUT:在服务器更新资源(客户端提供改变后的完整资源,服务端返回完整的更新字段) PATCH:在服务器更新资源(客户端提供改变的属性,服务端返回只发生了更新的字段...204 NO CONTENT 删除数据成功 400 BAD REQUEST 用户发出的请求有错误 401 Unauthorized 表示用户没有认证,无法进行当前操作 403 Forbidden 表示用户的访问是被禁止的...… 错误处理:输出JSON格式错误信息 返回结果:输出JSON数组或JSON对象 数据库设计 在数据库中新建2张表: 用户表: ID、用户名、密码、注册时间 文章表: 文章ID、标题、内容、发表时间、用户...ID 添加.htaccess Apache重写文件 之后就可以在IDE中进行相应的开发编码工作。

    3.4K20

    如何设计出优秀的Restful API?

    5 使用JSON作为通信格式 JSON阅读性更高,扩展性更强,适合各种环境和语言进行解析,现在大的互联网公司,对外提供的API基本都使用JSON。...下面是Http状态码,可以合理利用处理各种请求反馈,将http自身的错误和服务器内部的错误,有一个很好的区分。 2xx(成功类别) 200 Ok表示GET,PUT或POST成功的标准HTTP响应。...401 Unauthorized表示不允许客户端访问资源,并应使用所需凭据重新请求。 403 Forbidden表示请求有效且客户端已通过身份验证,但不允许客户端出于任何原因访问该页面或资源。...5xx(服务器错误类别) 500内部服务器错误表示请求有效,但服务器完全混淆,并要求服务器提供某些意外情况。 503 Service Unavailable表示服务器已关闭或无法接收和处理请求。...可以有效的跨版本访问,例如在v2版本,还需要访问v1版本的一些接口 9 总结 1,API接口都用小写 2,使用JSON通信 3,API带版本控制,比如v1,v2 4,使用Token令牌进行鉴权 5,路径中单词连接使用中划线

    1.4K10

    Nginx + keepalived 实现高可用 + 防盗链 + 动静分离,写得太好了!

    ,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。             ...    location /         {             #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移...(代理连接超时)   proxy_read_timeout      60; #连接成功后,后端服务器响应时间(代理接收超时)   proxy_send_timeout      5; #后端服务器数据回传时间...    location /         {             #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移...在浏览器输入地址www.dpspread.com访问,可以看到访问正常 5.10 下面我们重新启动主节点192.168.152.130 可以看到主节点重新启动以后变为主节点了 之前变为主节点的从节点又变回从节点了

    88420

    Nginx+keepalived 实现高可用,防盗链及动静分离配置,写得太好了!

    ,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。...location / { #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移...(代理连接超时) proxy_read_timeout 60; #连接成功后,后端服务器响应时间(代理接收超时) proxy_send_timeout 5; #后端服务器数据回传时间...,大于这个值,将从upstream服务器传 gzip on; #NGINX可以压缩静态资源,比如我的静态资源有10M,压缩后只有2M,那么浏览器下载的就少了 gzip_min_length...location / { #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移

    2K10

    聊一聊接口测试如何设计有效的错误响应测试用例

    错误响应测试用例的设计是为了确保当接口接收到无效或意外的输入时,能够返回预期的错误信息,而不是崩溃或返回不明确的结果。输入验证错误、认证失败、资源不存在、业务逻辑错误、服务器错误等。...每个错误类型对应的HTTP状态码也要正确,比如400表示客户端错误,401未授权,404资源不存在,500服务器错误等。我们还要考虑如何覆盖各种边界情况和异常情况。...这些都属于输入验证的错误,应该返回4xx的状态码,并附带具体的错误信息。还有资源相关的错误,比如访问不存在的资源,或者尝试操作其他用户的资源,这时候需要404或403。...认证与权限错误测试点:无效 Token:使用过期或伪造的 Token,验证返回 401 Unauthorized。权限不足:普通用户尝试访问管理员接口,返回 403 Forbidden。...:状态码:403 Forbidden响应体:json{  "code": "INSUFFICIENT_PERMISSIONS",  "message": "You are not authorized

    1K10

    揭秘LOL背后的IT基础架构丨基础设施即代码

    为启用此工作流,我们构建了一个系统,以简单的JSON数据模型(我们称为网络蓝图)描述应用程序的网络功能。...然后,我们创建了一个周期性工作,从源代码管理中提取这些蓝图文件,然后将其转换为Tungsten Fabric上的API调用以实施适当的策略。...现在,唯一的瓶颈是工程师编辑JSON文件并单击“提交”的速度。 image.png 该系统使我们能够快速、轻松地打开必要的网络访问权限,这是安全策略的关键要素所在。...例如,公共Web服务器被禁止从网络访问支付系统,并且该系统还维护自己的一组防御措施,比如第7层防火墙和入侵检测系统。...通过基础设施即代码JSON描述文件来使用其API ,我们始终可以为应用程序之间的通信提供最新的、版本化的,并且易于审核的网络策略。我们创建了可以扫描网络规则的工具,以发现违反政策和访问权限过大的情况。

    90720

    如何设计好的RESTful API

    所以,服务器回应的 HTTP 头的 Content-Type属性要设为 application/json。...比如: 异步操作:服务器已接收到请求,但是还未处理,但是会在未来处理 资源已经存在,没有创建新的资源 (有些业务可能会返回错误信息"您创建的数据已存在",所以这种情景没有明确的规定,符合自己的业务需求即可...) 4xx 状态码 4xx 状态码表示客户端的错误,主要有以下几种: 400BadRequest:服务器不理解客户端的请求,未做任何处理 401Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证...403Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限 404NotFound:所请求的资源不存在,或不可用 415UnsupportedMediaType:客户端要求的返回格式不支持...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError

    2.2K20

    赏心悦目的RESTful API这样来设计!

    所以,服务器回应的 HTTP 头的 Content-Type属性要设为 application/json。...比如: 异步操作:服务器已接收到请求,但是还未处理,但是会在未来处理 资源已经存在,没有创建新的资源 (有些业务可能会返回错误信息"您创建的数据已存在",所以这种情景没有明确的规定,符合自己的业务需求即可...) 4xx 状态码 4xx 状态码表示客户端的错误,主要有以下几种: 400BadRequest:服务器不理解客户端的请求,未做任何处理 401Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证...403Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限 404NotFound:所请求的资源不存在,或不可用 415UnsupportedMediaType:客户端要求的返回格式不支持...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError

    1.9K10
    领券