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

如何通俗理解API?

internet上的每个页面都存储在远程服务器的某个地方。毕竟,远程服务器并不是那么神秘——它只是远程定位计算机的一部分,经过优化可以处理请求。...从长远来看,你可以在你的笔记本电脑上启动一个服务器,它可以为整个网站提供网络服务(事实上,工程师们在公众发布网站之前会使用一个本地服务器来开发网站)。...当你在浏览器中输入www.facebook.com时,一个请求发送到Facebook的远程服务器。一旦您的浏览器接收到响应,它将解释代码并显示页面。...另外,您的浏览器通常可以绕过您的服务器直接谷歌的服务器发送API请求。这个谷歌日历的API与其他远程服务器的API有何不同?在技术术语中,区别在于请求和响应的格式。...你能用浏览器发出这些请求?通常,是的。由于实际的HTTP传输是在文本中进行的,所以您的浏览器总是会尽其所能来显示响应。例如,您可以直接使用浏览器访问GitHubAPI,甚至不需要访问令牌。

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

通俗易懂讲清 API

当你在浏览器中输入 www.baidu.com 时,一个请求发送到 Baidu 的远程服务器。一旦你的浏览器收到响应后,它会解析代码并显示页面。...API 并不等同于远程服务器——而是指接收请求发送响应的那部分。...或者,你可以直接通过你自己服务器谷歌服务器发送 API 请求。这个 Google 日历 API 与其他远程服务器 API 的区别是什么?从技术角度看, 区别在于请求和响应格式。...总之,当公司客户提供 API 时,这意味着他们构建了一组专用 URL,返回纯数据响应——也就是说响应中不会包含像图形用户界面(如网站)那样具有表现性负担的内容。你可以用浏览器发起这些请求?...往往可以。由于实际 HTTP 传输以文本进行, 浏览器会尽最大可能显示响应。

17330

如何爬取实时变化的 WebSocket 数据

…… 爬虫面对 HTTP 和 WebSocket Python 中的网络请求库非常多,Requests 是最常用的请求库之一,它可以模拟发送网络请求。但是这些请求都是基于 HTTP 协议的。...WebSocket 的握手只发生一次,所以如果需要通过浏览器开发者工具观察网络请求,则需要在打开页面的情况下,打开浏览器开发者工具,定位到 NewWork 选项卡,并输入或刷新当前页面,才能观察到 WebSocket...消息发送和接收怎么弄? 有什么库可以轻松实现?...是对方不接受我方的请求? 还是有什么反爬虫限制呢? 实际上,刚才的流程图可以解释这个问题: ? 整个流程中有一步是需要客户端给服务端发送指定的消息,服务端验证后才会不停推送数据。...首先,aiowebsocket 根据 WebSocket 地址,指定的服务端发送握手请求,并校验握手结果。 然后,在确认握手成功后,将数据发送给服务端。

1.6K10

Python 如何爬取实时变化的 WebSocket 数据

…… 爬虫面对 HTTP 和 WebSocket Python 中的网络请求库非常多,Requests 是最常用的请求库之一,它可以模拟发送网络请求。但是这些请求都是基于 HTTP 协议的。...WebSocket 的握手只发生一次,所以如果需要通过浏览器开发者工具观察网络请求,则需要在打开页面的情况下,打开浏览器开发者工具,定位到 NewWork 选项卡,并输入或刷新当前页面,才能观察到 WebSocket...消息发送和接收怎么弄? 有什么库可以轻松实现?...是对方不接受我方的请求? 还是有什么反爬虫限制呢? 实际上,刚才的流程图可以解释这个问题: ? 整个流程中有一步是需要客户端给服务端发送指定的消息,服务端验证后才会不停推送数据。...首先,aiowebsocket 根据 WebSocket 地址,指定的服务端发送握手请求,并校验握手结果。 然后,在确认握手成功后,将数据发送给服务端。

1.3K40

Python 如何爬取实时变化的 WebSocket 数据

…… 爬虫面对 HTTP 和 WebSocket Python 中的网络请求库非常多,Requests 是最常用的请求库之一,它可以模拟发送网络请求。但是这些请求都是基于 HTTP 协议的。...WebSocket 的握手只发生一次,所以如果需要通过浏览器开发者工具观察网络请求,则需要在打开页面的情况下,打开浏览器开发者工具,定位到 NewWork 选项卡,并输入或刷新当前页面,才能观察到 WebSocket...消息发送和接收怎么弄? 有什么库可以轻松实现?...是对方不接受我方的请求? 还是有什么反爬虫限制呢? 实际上,刚才的流程图可以解释这个问题: ? 整个流程中有一步是需要客户端给服务端发送指定的消息,服务端验证后才会不停推送数据。...首先,aiowebsocket 根据 WebSocket 地址,指定的服务端发送握手请求,并校验握手结果。 然后,在确认握手成功后,将数据发送给服务端。

2K41

一篇解释清楚Cookie是什么?

HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次同一服务器再发起请求时被携带并发送到服务器上。...=strawberry 2、存储 cookie 并回传 浏览器会在接下来的请求中,把存储的 cookie 数据,设置为 Cookie 属性,包含 HTTP 协议的 Header 中 ,连同请求一起发送给服务器...3、SameSite 功能:可以限制 cookie 的跨域发送,此属性可有效防止大部分 CSRF 攻击,有三个值可以设置: None :同站、跨站请求发送 cookie,但需要 Secure 属性配合一起使用...Set-Cookie: flavor=choco; SameSite=None; Secure Strict :当前页面与跳转页面是相同站点时,发送 cookie; Set-Cookie: key=value...在新版本浏览器中,为默认选项,Same-site cookies 将会为一些跨站子请求保留,如图片加载或者 frames 的调用,但只有当用户从外部站点导航到URL时才会发送

1.3K10

web 应用常见安全漏洞一览

原因 当攻击者通过某种方式浏览器页面注入了恶意代码,并且浏览器执行了这些代码。...原因 一些 Web 应用会把一些敏感数据以 json 的形式返回到前端,如果仅仅通过 Cookie 来判断请求是否合法,那么就可以利用类似 CSRF 的手段,目标服务器发送请求,以获得敏感数据。...比如下面的链接在已登录的情况下会返回 json 格式的用户信息: http://www.test.com/userinfo 攻击者可以在自己的虚假页面中,加入如下标签: <script src="<em>http</em>...<em>HTTP</em> 报头追踪漏洞 <em>HTTP</em>/1.1(RFC2616)规范定义了 <em>HTTP</em> TRACE 方法,主要是用于客户端通过<em>向</em> Web 服务器提交 TRACE <em>请求</em>来进行测试或获得诊断信息。...目录遍历漏洞 攻击者<em>向</em> Web 服务器<em>发送</em><em>请求</em>,通过在 URL 中或在有特殊意义的目录中附加 ..

67530

【项目设计】网络对战五子棋(上)

其实http有一个致命的缺点,就是无法支持服务器客户端主动推送消息,传统的CS通信方式都是一问一答的,即客户端服务器发送一个请求,服务器客户端反馈一个响应,而在最传统的http1.0版本协议中,客户端每和服务器进行一次通信都需要建立一条...,用户1将消息发送给服务器,想要让服务器将消息发送给用户2,但这三台机器应用层都使用的是http协议啊,所以服务器无法将消息主动推送给用户2,只有说当用户2服务器发送请求,询问服务器,现在有没有给我发送的消息啊...光实现一个服务端肯定还是不行的,http客户端我们可以不用实现,直接使用浏览器服务器发起http请求可以解决,但websocket客户端必须由我们来实现了,我们需要自己编写一个wsclient.html...另一个是前端页面模块,这个模块也是很重要的,当前端页面被浏览器获取并运行起来时,他就是用户直接接触的一个模块,用户在页面里进行的所有操作,其实都是一个业务请求,这些业务请求都会被发送到服务器上,由服务器来对这些请求进行业务逻辑处理...还有一种情况是,进入游戏大厅后,前端会通过ajax发送http请求来获取到用户详细信息并展示到前端页面上,这个过程也会触发刷新会话过期时间。

19930

容器与云的碰撞——一次对MinIO的测试

本周就遇到了一个环境,其中发现一个MinIO,其大概情况如下: MinIO运行在一个小型Docker集群(swarm)中 MinIO开放默认的9000端口,外部可以访问,地址为http://192.168.227.131...其实我前面也说了,因为平时用到MinIO的时候很多,所以这一步可以省略了。其使用Go开发,提供HTTP接口,而且还提供了一个前端页面,名为“MinIO Browser”。...我们来实际测试一下,http://192.168.227.131:9000发送如下请求,其中Host的值是我本地ncat开放的端口(192.168.1.142:4444): POST /minio/webrpc...两个API都是POST请求,而我们可以构造的SSRF却是一个GET的。怎么办呢? 0x03 再次升级SSRF漏洞 还记得我们是怎样获得这个GET型的SSRF的?...因为现在可以执行任意命令,我们就不会再受到SSRF漏洞的限制,可以直接反弹一个shell,或者可以直接发送任意数据包到Docker API,来访问容器。

2.2K20

Ansible之 AWX 使用 Ansible 与 API 通信

可以使用自定义脚本或外部应用使用标准HTTP消息访问API。...命令行curl的方式调用 请求使用HTTP获取方法检索API主入口点: 命令行访问RESTAPI示例:使用HTTP GET方法检索API主入口点。...版本等相关信息,这里的 -k参数取消 tocker 认证, -s 取消请求的过程展示 ┌──[root@vms81.liruilongs.github.io]-[~] └─$curl -X GET http...浏览器页面调用 也可以通过 浏览地址的方式,通过接口文档地址调用,http://192.168.26.82:30066/api/ 这样的好处是可以查看相关的接口信息,参数信息 使用 API 启动作业模板...PATCH,使用主体中的值修改请求URL所标识的实体。正文中只能有修改的值。 API发送信息 有两个相互排斥的参数来发送此信息: src选项,指向一个文件,该文件包含要发出的HTTP请求的正文。

1.5K10

一文详解 API 设计最佳实践

API 可以外部应用访问您的资源 API 扩展了应用程序的功能 API 允许开发者重用应用逻辑 API 是独立于平台的,它们传递数据不受请求平台的影响 在大多数实际场景中,数据模型 已经存在,但由于我们将讨论...API 通过使用一组 HTTP 命令来处理,这些命令定义了请求的性质和它应该做什么。 GET 从 API 中检索数据。它要求从 API 中获取数据的表示。...GET请求可以包含查询参数,以过滤从API接收的结果。 POST API 提交一条记录,该记录将在数据库中创建一个资源。 PUT 一般用于更新服务器上的现有资源。...所以,让用户在再次请求数据之前,先取到一定数量的结果,这一点很重要。这就是所谓的分页,返回的数据集叫做页面。 建议你在请求和返回结果中使用特定的术语来启用 API 中的分页功能。...这些术语有 STRING page_token(在请求发送) STRING next_page_token(由 API 返回) INT page_size(在请求发送) page_token 请求

80420

6.5 GitHub - 脚本 GitHub

指定一个 URL 然后 GitHub 在任一期望的事件发生时就会发送一个 HTTP 请求到那个 URL 。...有几个选项可以指定在哪个事件时想要 GitHub 发送请求 — 默认的行为是只有当某人推送新代码到仓库的任一分支时的 push 事件获得一个请求。...可以看到 GitHub 为那个 webhook 的最后几次请求。 对每一个钩子,当它发送后都可以深入挖掘,检测它是否是成功的与请求及回应的消息头与消息体。 这使得测试与调试钩子非常容易。 ?...基本用途 可以做的最基本的事情是一个不需要授权的接口上发送一个简单的 GET 请求。 该接口可能是一个用户或开源项目的只读信息。...API 接口发送一个带有状态的 POST 请求

2.7K40

Android微信之简单文本分享(集成官方SDK-Eclipse)

下面就可以提交审核了,审核周期官方说是7天,一般1-2天就可以审核通过了! ? 审核通过 APPID还是非常有用的,后面会用到。...权限说明 3.微信APP注册你的id 要使你的程序启动后微信终端能响应你的程序,必须在代码中微信终端注册你的id。 ? 注册APP_ID 4.发起文本分享请求 ?...请求核心代码 5.处理分享成功后的回调 如果你的程序需要接收微信发送请求,或者接收发送到微信请求的响应结果,需要下面操作 a.在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个...回调页面配置 b. 实现IWXAPIEventHandler接口,微信发送请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法 ? ?...源码: https://github.com/andli0626/wx_sharedemo 测试APK 效果: ? ?

69540

WEB攻击与安全策略

由于直接在用户的终端执行,恶意代码能够直接获取用户的信息,利用这些信息冒充用户网站发起攻击者定义的请求。 利用了用户对特定 Web 应用程序的信任 分类 1....DOM型状XSS 描述: 在使用 .innerHTML、.outerHTML、.appendChild、document.write()等API时,用户容易把不可信的数据作为 HTML 插到页面上。...攻击 也叫跨站请求伪造攻击 本质 它强制经过身份验证的用户当前对其进行身份验证的 Web 应用程序提交请求。...它必须与resport-uri选项配合使用 开启方式 通常可以通过两种方式来开启 CSP: 设置 HTTP Header 中的 Content-Security-Policy "Content-Security-Policy...="script-src 'self'"> 如果HTTP头与Meta定义同时存在,则优先采用HTTP中的定义 写法 例如 // 限制所有的外部资源,都只能从当前域名加载 Content-Security-Policy

88910

OAuth 2 深入介绍

前言 OAuth 2 是一个授权框架,或称授权标准,它可以使第三方应用程序或客户端获得对HTTP服务上(例如 Google,GitHub )用户帐户信息的有限访问权限。...Authorization Grant(Post) 客户端授权服务器发送它自己的客户端身份标识和上一步中的authorization grant,请求访问令牌。...Access Token(Post && Validate) 客户端资源服务器发送access token用于验证并请求资源信息。...Application Sends Access Token Extraction Script 客户端生成一个包含 token 解构脚本的 Html 页面,这个页面发送给User-agent(浏览器...客户端可以直接使用它的client credentials或其他有效认证信息授权服务器发起获取access token的请求。 ?

81220

C#进阶系列——WebApi接口测试工具:WebApiTestClient

它对于接口的作用、参数作用以及类型、返回值说明等等都能很好展现,并且提供测试调用的功能,输入测试参数发送请求,就能得到相应的返回结果。...(3)、可以修改http请求头文件Head和请求体Body里面的参数,指定发送http请求的特性,比如指定我们最常见的contentType指示参数的类型。...我们的WebApiTestClient也可以实现类似的功能,直接通过页面上的测试按钮,就能测试接口。 2、WebApiTestClient是一个开源组件。...例如本文查看Get请求的无参方法,右下角有按钮可以测试接口。 ? 点击“Test API”按钮 ? 点击Send发送请求 ? 第二个有参数的接口 ? 手动输入参数,得到返回结果 ?...由于是post请求,如果需要执行参数长度和类型,可以通过content-length和content-type来指定。

1.4K70

React 入门学习(八)-- GitHub 搜索案例

本文主要介绍 React 学习中 Github 搜索案例,这个案例主要涉及到了 Axios 发送请求,数据渲染以及一些中间交替效果的实现 个人感觉在做完 TodoList 案例之后,这个案例会很轻松,...同时,a 标签要添加 rel="noreferrer"属性,不然会有大量的警告出现 二、axios 发送请求 在实现静态组件之后,我们需要通过 github 发送请求,来获取相应的用户信息 但是由于短时间内多次请求...,可能会导致请求不返回结果等情况发生,因此我们采用了一个事先搭建好的本地服务器 我们启动服务器,这个地址发送请求即可 这个请求类型是 GET 请求,我们需要传递一个搜索的关键字,去请求数据 我们首先要获取到用户点击搜索按钮后输入框中的值...axios.get(`http://localhost:3000/api1/search/users?...,来传递参数,以获得相关数据 这里会存在跨域的问题,因我我们是站在 3000 端口 5000 端口发送请求的 因此我们需要配置代理来解决跨域的问题,我们需要在请求地址前,加上启用代理的标志 /api1

84830

React 入门学习(八)-- GitHub 搜索案例

本文主要介绍 React 学习中 Github 搜索案例,这个案例主要涉及到了 Axios 发送请求,数据渲染以及一些中间交替效果的实现 个人感觉在做完 TodoList 案例之后,这个案例会很轻松,只是多加了一个...同时,a 标签要添加 rel="noreferrer"属性,不然会有大量的警告出现 二、axios 发送请求 在实现静态组件之后,我们需要通过 github 发送请求,来获取相应的用户信息 但是由于短时间内多次请求...,可能会导致请求不返回结果等情况发生,因此我们采用了一个事先搭建好的本地服务器 我们启动服务器,这个地址发送请求即可 这个请求类型是 GET 请求,我们需要传递一个搜索的关键字,去请求数据 我们首先要获取到用户点击搜索按钮后输入框中的值...axios.get(`http://localhost:3000/api1/search/users?...,来传递参数,以获得相关数据 这里会存在跨域的问题,因我我们是站在 3000 端口 5000 端口发送请求的 因此我们需要配置代理来解决跨域的问题,我们需要在请求地址前,加上启用代理的标志 /api1

67620
领券