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

如何通俗理解API?

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

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

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

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

    2K10

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

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

    2.1K40

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

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

    2.3K41

    通俗易懂讲清 API

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

    67830

    一篇解释清楚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时才会发送。

    2.3K10

    同源策略与跨域资源共享

    CORS是一种W3C标准,它允许服务器通过特定的HTTP头部信息,明确声明哪些外部源可以访问其资源,从而在受控的条件下安全地“放宽”同源策略的限制。...限制(默认情况下):脚本化HTTP请求:浏览器阻止一个源的脚本(通过XMLHttpRequest或FetchAPI)向另一个源发起HTTP请求并读取其响应。...,corssop.thm.evilcors.thm),在该域名上部署恶意页面。诱导用户访问该页面,页面脚本向目标服务器(http://corssop.thm/badregex.php)发起跨域请求。...攻击者可以在任何自己控制的域名(e.g.,http://evilcors.thm)上部署恶意页面。...诱导用户访问该页面,页面脚本向目标服务器(http://corssop.thm/arbitrary.php)发起跨域请求。

    30100

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

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

    57230

    容器与云的碰撞——一次对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,来访问容器。

    3.1K20

    web 应用常见安全漏洞一览

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

    95530

    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请求的正文。

    2.2K10

    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 效果: ? ?

    92840

    一文详解 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 请求

    1.1K20

    6.5 GitHub - 脚本 GitHub

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

    3.2K40

    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

    1.4K10

    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的请求。 ?

    1.1K20

    OpenHarmony实战开发——网络组件axios可以在OpenHarmony上使用了

    什么是axios上古浏览器页面在向服务器请求数据时,因为返回的是整个页面的数据,页面都会强制刷新一下,这对于用户来讲并不是很友好。...并且我们只是需要修改页面的部分数据,但是从服务器端发送的却是整个页面的数据,十分消耗网络资源。而我们只是需要刷新页面的部分数据,并不希望刷新整个页面。...这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。...,有以下特点:● 从浏览器中创建 XMLHttpRequests● 从 node.js 创建 http 请求● 支持 Promise API● 拦截请求和响应● 转换请求数据和响应数据● 取消请求● 自动转换...它不只是支持浏览器和Nodejs吗?这块深入解读的话,需要了解axios框架的实现原理。

    77320
    领券