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

什么是REST API

REST API示例 在你的浏览器中打开以下链接,从Open Trivia Database[3]中请求一个随机的计算机问题: https://opentdb.com/api.php?...amount=1&category=18" HTTP客户端库可以在所有流行的语言和运行时中使用,包括JavaScript、Node.js和Deno中的Fetch[6]以及PHP中的file_get_contents...数据通常在HTTP主体中传输,该方式与HTML提交或者发送单独的JSON编码的数据字符串等方式相同。...在发出任何请求之前,通过向OAuth服务器发送一个客户ID和可能的客户秘密,获得一个令牌。然后,OAuth令牌会随每个API请求一起发送,直到过期。...数字签名的认证令牌在请求和响应头中安全地传输。JWT允许服务器对访问权限进行编码,因此不需要调用数据库或其他授权系统。

6K20

同源和跨域详解_如何实现跨域

比如实际开发过程中,往往都会把服务器端架设到一台甚至是一个集群的服务器中,把客户端页面放到另外一个单独的服务器。...原理:服务端返回一个定义好的js函数的调用,并且将服务器的数据以该函数参数的形式传递过来,这个方法需要前后端配合 script 标签是不受同源策略的限制的,它可以载入任意地方的 JavaScript.../testjs.php"> 缺点:后端必须知道前端声明的方法的名字,后端才能调用。...("Access-Control-Allow-Origin:http://www.study.com"); CORS的具体流程(了解) 浏览器发送跨域请求 服务器端收到一个跨域请求后,在响应头中添加...服务器与服务器之间是不存在跨域的问题的 jsonp与cors的对比 jsonp兼容性好,老版本浏览器也支持,但是jsonp仅支持get请求,发送的数据量有限。

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

    如何在 PHP 中使用和管理 Cookie

    Cookie 是服务器发送到客户端浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上,以此来实现客户端识别和状态管理。...通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议实现状态管理成为了可能。...下面我们调用这个函数来发送 Cookie 到客户端,在 php_learning/http 目录下新建 cookie.php 来保存本篇教程的代码: <?...', $expires); // 1 小时后过期 echo '设置 Cookie 成功'; 然后,我们在浏览器中访问 http://localhost:9000/cookie.php: 可以看到响应头中已经包含两个用于设置...但是需要注意的是,本次响应发送的 Cookie 需要在下次请求时才能在服务端获取到,这很好理解,因为 Cookie 是随着响应头发送到客户端,再由客户端下次请求时自动在请求头中带上 Cookie 信息对服务器发起请求

    4.2K20

    【全栈修炼】414- CORS和CSRF修炼宝典

    简单请求的 CORS 流程 当 Origin 指定的源不在许可范围,服务器会返回一个正常的 HTTP 回应,但浏览器会在响应头中发现 Access-Control-Allow-Origin 字段,便抛出异常...当 Origin 指定的源在许可范围,服务器返回的响应头中会多出几个头信息字段: ?...布尔值,表示是否允许在 CORS 请求之中发送 Cookie 。若不携带 Cookie 则不需要设置该字段。 当设置为 true 则 Cookie 包含在请求中,一起发送给服务器。...4.2 预检响应 HTTP/1.1 200 OK Access-Control-Allow-Origin: http://api.bob.com Access-Control-Allow-Methods...3.1 Cookie Hashing(所有表单都包含同一个伪随机数) 最简单有效方式,因为攻击者理论上无法获取第三方的Cookie,所以表单数据伪造失败。以 php 代码为例: <?

    3.9K40

    Go 语言安全编程系列(一):CSRF 攻击防护

    2、使用示例 接下来,学院君来简单演示下如何在实际项目中使用 gorilla/csrf 提供的 csrf.Protect 中间件。...,在浏览器中访问 http://127.0.0.1:8000/signup,就可以通过源代码查看到隐藏的包含 CSRF 令牌的输入框了: 如果我们试图删除这个输入框或者变更 CSRF 令牌的值,提交表单...JavaScript 应用 csrf.Protect 中间件还适用于前后端分离的应用,此时后端数据以接口方式提供给前端,不再有视图模板的渲染,设置中间件的方式不变,但是传递 CSRF 令牌给客户端的方式要调整.../api/user/1 接口,就可以获取如下响应信息: 这样一来,我们就可以在客户端读取响应头中的 CSRF 令牌信息了,以 Axios 库为例,客户端可以这样发送包含 CSRF 令牌的 POST 请求...: // 你可以从响应头中读取 CSRF 令牌,也可以将其存储到单页面应用的某个全局标签里 // 然后从这个标签中读取 CSRF 令牌值,比如这里就是这么做的: let csrfToken = document.getElementsByName

    5.2K41

    使用 POST 方法与 JSON 格式进行 HTTP 请求的最佳实践

    无论是在前后端的分离项目中,还是在微服务架构中,API 的调用已经成为开发者日常工作中不可或缺的一部分。...本文将详细介绍如何在 HTTP 请求中使用 POST 方法,并采用 JSON 格式在请求体中发送数据,重点讲解请求头的配置、不同编程语言中的实现方式,以及在实际开发中需要注意的要点。...一、POST 方法的基本概念 在 HTTP 协议中,POST 是一种常见的请求方法,用于向服务器发送数据并触发相应的操作,例如创建资源、提交表单、更新数据等。...三、请求头的配置:Content-Type 当我们通过 POST 请求发送 JSON 格式的数据时,必须在请求头中声明数据的类型,以便服务器能够正确解析数据格式。...六、总结 通过本文的介绍,我们详细探讨了如何在 HTTP 请求中使用 POST 方法,并在请求体中传递 JSON 格式的数据。

    79110

    中职网络安全技能竞赛——广西区赛中间件渗透测试教程文章

    经过分析, 该后门的核心功能模块有两部分: 第一是通过判断特殊的HTTP头执行远程PHP代码; 第二个是通过判断特殊的HTTP头后连接C&C服务器并执行回传的PHP代码....远程命令执行后门功能分析 ​ 通过参考相关资料得知, 如果攻击者构造的HTTP头中含有Accept-Encoding字段时就会进入对应的攻击流程....如果HTTP头中同时含有Accept-Encoding: gzip,deflate以及Accept-Charset两个字段时,会先解密Accept-Charset中Base64后的PHP代码,然后执行该代码...自动触发方式结束后就会更新当前触发的时间,下一次就根据这个时间来判断是否进入自动触发方式:  ​ 第二段base64数据解码如下: ​ 这段PHP代码中内置有域名表和端口表, 批量遍历后发送请求到C&C...中构造上述http请求, 并发送该请求给目标主机, 回显验证了该后门利用实现了.如下图所示:

    13310

    安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性

    $_GET:收集URL中的发送的数据。也可用于收集提交HTML表单数据(method="get") $_FILES:文件上传且处理包含通过HTTP POST方法上传给当前脚本的文件内容。...:见图 1、客户端向服务器发送HTTP请求。...4、服务器在响应头中设置cookie信息并将其发送回客户端。 5、客户端接收响应并将cookie保存在本地。 6、当客户端发送下一次HTTP请求时,它会将cookie信息附加到请求头中。...2、服务器为客户端生成一个唯一的session ID,并将其存储在服务器端的存储器中(如文件、数据库等)。 3、服务器将生成的session ID作为一个cookie发送给客户端。...5、当客户端在发送下一次HTTP请求时,它会将该cookie信息附加到请求头中,以便服务器可以通过该session ID来识别客户端。

    89010

    Nginx 配置和性能调优

    worker 进程数默认为 1 。worker_processes 1;worker 进程数应该设置为服务器 CPU 的核数。...tcp_nodelay:默认情况下当数据发送时,内核并不会马上发送,可能会等待更多的字节组成一个数据包,这样可以提高 I/O 性能,但是,在每次只发送很少字节的业务场景中,使用 tcp_nodelay...Web 服务:如果请求的是静态资源,则由 Nginx 解析后直接返回给用户;如果是动态请求(如 PHP),那么 Nginx 就会把它通过 FastCGI 接口发送给 PHP 引擎服务(即 php-fpm...简单地说,就是其它网站未经许可,通过在其自身网站程序里非法调用其他网站的资源,然后在自己的网站上显示这些调用的资源,使得被盗链的那一端消耗带宽资源 。通过 HTTP referer 实现防盗链。...$scheme #HTTP 方法(如 http,https)。$server_protocol #请求使用的协议,通常是 HTTP/1.0 或 HTTP/1.1。

    2.4K41

    同源策略与跨域资源共享

    然而,现代Web应用的复杂性和交互性常常需要合法地在不同源之间共享资源(如从CDN加载库、调用第三方API)。...设为true时,表示服务器允许浏览器在跨域请求中发送凭证(如Cookie、HTTP认证、客户端SSL证书),并且允许前端JavaScript访问带有凭证的响应。...当用户打开这个HTML文件时,iframe中的脚本(源为null)向配置错误的服务器(http://corssop.thm/null.php)发起带凭证的请求。...服务器端:读取callback参数(handleData)。将要返回的JSON数据包装在对该回调函数的调用中,形成JavaScript代码(e.g....客户端:浏览器执行返回的脚本,调用handleData函数,数据作为参数传入。限制与风险:只支持GET请求。需要服务器端支持:API必须按JSONP格式返回数据。

    29900

    TCPIP协议详解

    UDP协议(User Datagram Protocol): 提供无连接的、不可靠的数据传输。它用于一些实时应用程序,如音频和视频流。...发送方: 打开浏览器,输入网址 www.xxx.com,按回车键来访问网页,其实就是访问 Web 服务器上的网页,在应用层采用的协议是 HTTP,浏览器将网址等信息组成 HTTP 数据,并将数据传送给传输层...应用层得知发送方请求的是 HTTP 数据,因此调用 Web 服务器程序把 www.xxx.com 的首页文件发送回去。...如果两台计算机位于不同的网段中,那么数据从一台计算机到另一台计算机传输的过程中要经过一个或多个路由器,如下图所示。 目的主机收到数据报后,如何经过各层协议栈最终到达应用程序呢?...整个过程如下图所示: 以太网驱动程序首先根据以太网报头中的“上层协议”字段确定该数据帧的有效载荷(Payload,指除去协议报头之外实际传输的数据)是 IP、ARP 或 RARP 的数据报,然后交给相应的协议处理

    5.6K21

    Nginx 安全性能配置 & DDOS 防范

    主要看服务器的硬件配置及流量特性。 keepalive_requests 表示客户端单个连接上最多能发送多少个请求,默认值是 100。可以设置成更高的值,试情况而定。...通常有如下特点: 攻击的 IP 或 IP 段相对固定,每个IP都有远大于真实用户的连接数和请求数。 因为攻击是由木马发出且目的是使服务器超负荷,请求的频率会远远超过正常人的请求。...User-Agent 通常是一个非标准的值 Referer 有时是一个容易联想到攻击的值 根据以上的相关特征可以做以下配置来抵抗 DDOS 攻击 限制请求速度 limit_req_zone...针对不是常见的 User-Agent 的请求 针对 Referer 头中包含可以联想到攻击的值的请求 针对其他请求头中包含可以联想到攻击的值的请求 比如,如果你判定攻击是针对一个特定的 URL:/foo.php...,攻击请求的 User-Agent 中包含 foo 或 bar 我们就可以屏蔽到这个页面的请求: location /foo.php { deny all; } location /{ if ($http_user_agent

    1.7K20

    【网络知识补习】❄️| 由浅入深了解HTTP(四) HTTP之cookies

    然后,对于同一服务器发起的每一个请求,客户端都会在 HTTP 请求头中以字段 Cookie 的形式将 cookie 的值发送过去。...新的浏览器API已经允许开发者直接将数据存储到本地,如使用 Web storage API (本地存储和会话存储)或 IndexedDB 。...提示: 如何在以下几种服务端程序中设置 Set-Cookie 响应头信息 : PHP Node.JS Python Ruby on Rails 定义 Cookie 的生命周期 Cookie...在新版本浏览器中,为默认选项,Same-site cookies 将会为一些跨站子请求保留,如图片加载或者 frames 的调用,但只有当用户从外部站点导航到URL时才会发送。...在应用程序服务器上,Web 应用程序必须检查完整的 cookie 名称,包括前缀 —— 用户代理程序在从请求的 Cookie 标头中发送前缀之前,不会从 cookie 中剥离前缀。

    2.9K20

    Postman工具_postman安装使用教程

    图片 2.接口响应数据解析 响应数据是发送请求后经过服务器处理后返回的结果,响应由三部分组成,分别是状态行、响应头、响应体。我们来看下postman的响应数据展示。...主要场景:一般情况下,在发送请求前需要对接口的数据做进一步处理,就都可以使用这个功能,比如说,登录接口的密码,在发送前需要做加密处理,那么就可以在前置脚本中做加密处理,再比如说,有的接口的输入参数有一些随机数...,每请求一次接口参数值都会发送变化,就可以在前置脚本中编写生成随机数的代码 。...案例: 请求的登录接口URL,参数t的值要求的规则是每次请求都必须是一个随机数。 接口地址:http://localhost/index.php?...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.3K30

    Nginx学习笔记,持续记录

    256kb,那么大于256kb的部分会缓存到fastcgi_temp指定的路径中,但是因为内存中数据处理远快于磁盘, 所以这个值应该为站点 #中php所产生的页面大小的中间值, 如果站点大部分php脚本产生的页面为...-v http://127.0.0.1/,这里的header1=xxx和header2=xxx就是请求头中的头部字段 (请求行+请求头)的大小不能超过32k(4 * 8k) 6.client_max_body_size...sendfile()系统调用来替换read()和write()调用,减少系统上下文切换从而提高性能,当 nginx 是静态文件服务器时,能极大提高nginx的性能表现,而当 nginx 是反向代理服务器时...这时会造成一种情况:终端应用程序每产生一次操作就会发送一个包,而典型情况下一个包会拥有一个字节的数据以及40个字节长的包头,于是产生4000%的过载,很轻易地就能令网络发生拥塞。...如 果这些模块确认不会出现阻塞式的调用,那么,有多少 CPU 内核就应该配置多少个进程;反 之,如果有可能出现阻塞式调用,那么需要配置稍多一些的 worker 进程。

    1.7K21

    Nginx结构全解析(21)

    一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。...2.events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。...如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。 4.server块:配置虚拟主机的相关参数,一个http中可以有多个server。...tcp_nodelay on; #[超时设置,单位均为秒] #客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接,对于后端是php,可以低一些,因为php解析快,java的话要长一些,java...open_file_cache_min_uses 2; #指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件。我们也包括了服务器模块,这些是在不同文件中定义的。

    72920

    Ajax第一节

    发送get请求 XMLHttpRequest以异步的方式发送HTTP请求,因此在发送请求时,一样需要遵循HTTP协议。 使用XMLHttpRequest发送get请求的步骤 //1....获取短信验证码 需求文档(产品) 总需求:点击获取验证码按钮,向服务端发送请求, 调用服务器端短信接口, 服务器端根据传参, 调用第三方短信接口, 给手机发送验证码 需求1:格式校验 (1) 手机号码不能为空...AJAX 请求不能发送。 虽然这些限制是很有必要的,但是也给我们日常开发带来不好的影响。比如实际开发过程中,往往都会把服务器端架设到一台甚至是一个集群的服务器中,把客户端页面放到另外一个单独的服务器。...原理:服务端返回一个定义好的js函数的调用,并且将服务器的数据以该函数参数的形式传递过来,这个方法需要前后端配合 script 标签是不受同源策略的限制的,它可以载入任意地方的 JavaScript 文件...("Access-Control-Allow-Origin:http://www.study.com"); CORS的具体流程(了解) 浏览器发送跨域请求 服务器端收到一个跨域请求后,在响应头中添加Access-Control-Allow-Origin

    4.9K20
    领券