HTTP动词表示动作(HTTP Verbs Represent Actions) 在RESTful API中,我们使用HTTP动词作为动作( actions),并且端点是所执行的资源。...来源百度百科 资源(Resources) 资源将是actions的目标,在我们的文章和用户的情况下,他们有自己的端点: /articles /users 在这个laravel api教程中,资源将在我们的数据模型中具有...当一个动作执行成功,但没有内容返回。 206:部分内容。当您必须返回分页的资源列表时很有用。 400: 错误的请求。无法通过验证的请求的标准选项。 401:未经授权 用户需要进行身份验证。...403:禁止 用户已通过身份验证,但没有执行操作的权限。 404: 未找到。当没有找到资源时,这将由Laravel自动返回。 500: 内部服务器错误。...认证 在Laravel中有许多实现API身份验证的方法(其中之一是Passport,实现OAuth2的好方法),但在本文中,我们将采用一个非常简化的方法。
,则返回 403 状态码,拒绝请求。...例如,假设你有一个端点,该端点返回 JSON 数据。...用户通过浏览器向网站地址/api/data发出JSON数据请求Nginx根据location规则,将请求转发到后端服务器backend但在转发前,设置proxy_set_header将响应头Content-Type...例如,你可能想要对静态资源(如 CSS、JavaScript、图像文件等)设置长时间的缓存,以减少返回同一资源的请求次数。你可以在 Nginx 配置中这样设置:location \~* \....\~ ^(GET|POST)$ ) { return 403;}#只允许GET和POST请求,其他方法返回403:3.路由分发根据请求方法分发到不同的后端服务器案例upstream backend
Nova的各个模块 nova-api 对外提供rest接口的处理 对传入的参数进行合法性校验和约束限制 对请求的资源进行配额(quota)的校验和预留 资源的创建,更新,删除查询等 虚拟机生命周期的入口...nova-novncproxy 在访问VNC-Server的时候需要对应的VNC-Client,现在浏览器里已经集成了VNC的功能,可以直接通过浏览器来进行访问。...VNC Client 2 浏览器向nova-api发送请求,要求返回访问vnc的url 3 nova-api调用nova-compute的get vnc console方法,要求返回连接VNC的信息 4...将libvirt返回的信息以及配置文件中的信息综合成connect_info返回给nova-api 9 nova-api会调用nova-consoleauth的authorize_console函数 10...验证了这个token,将这个instance对应的connect_info返回给nova-novncproxy 16 nova-novncproxy通过connect_info中的host, port等信息
keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。...nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。 nova-scheduler进程侦听消息队列,获取nova-api的请求。...nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。 nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。...nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor) nova-conductor从消息队队列中拿到nova-compute请求消息。...比如说GET是查询资源,POST是添加资源,PUT是更新资源等等。 使用RESTful API架构,实现的目标 客户端与服务端的独立性: 在公共接口不变的情况下,客户端和服务端的代码可以独立开发。
针对每一个端点来说,下面列出所有可行的 HTTP 动词和端点的组合 用 URL 定位资源 请求方法 URL 描述 GET /zoos 列出所有的动物园(ID和名称,不要太详细) POST /zoos 新增一个新的动物园...应该带着指向新资源地址的 Location 头 202 Accepted 服务器接受了请求,但是还未处理,响应中应该包含相应的指示信息,告诉客户端该去哪里查询关于本次请求的信息 204 No Content...对不会返回响应体的成功请求进行响应(比如 DELETE 请求) 3xx 重定向 40x 客户端错误 400 Bad Request 请求异常,比如请求中的body无法解析 401 Unauthorized...没有进行认证或者认证非法或失效 403 Forbidden 服务器已经理解请求,但是拒绝执行它 404 Not Found 该状态码表示用户请求的资源不存在,如 获取不存在的用户信息 (get /users.../9999999) 访问不存在的端点 都 必须 返回该状态码,若该资源已永久不存在,则 应该 返回 410 响应。
除了 200 之外,还有很多其他响应状态码,比如 301、403、404、500 等,分别表征不同的含义,比如 301 表示永久重定向、403 表示没有权限、404 表示资源不存在、500 表示服务器错误...3、重定向 在 PHP 中,可以通过设置 Location 响应头对用户请求进行重定向: ?...在 API 接口中,通常返回的是 JSON 格式数据,JSON 本质上也就是对象字符串,所以在请求处理代码的最后,通过 echo 输出对应的 JSON 对象字符串即可,在 PHP 中,可以通过 PHP...入门指南' ] ]; echo json_encode($album); 在浏览器中访问 http://localhost:9000/response.php,返回的 JSON 格式响应数据如下...'); // 设置下载文件名 header('Content-Disposition: attachment; filename="laravel.zip"'); // 读取二进制文件流返回给客户端浏览器
REST 是面向资源的,一个资源被一个 URI 所标识,比如 /articles/。 端点(endpoint),一般指动词与 URI 的组合,比如 GET: /articles/。...注:通常而言,对于浏览器来说,这似乎不是问题,因为浏览器一般都自带内容嗅探机制,但为了保持一致性,还是在响应中设置这个头部比较妥当。 3....在响应中返回错误详情 当 API 服务器处理错误时,如果能够在返回的 JSON body 中包含错误信息,对于接口调用者来说,会一定程度上帮助他们完成调试。...这里提供两种方案: 第一种方案通过在 URI 中,将嵌套的资源放在所关联的资源后边来进行描述,比如: GET: /authors/12/articles/ 一些人推荐这种方案的理由是,这种形式的...用户经过了正常的身份验证,但没有访问资源所需的权限?这种一般是未授权(403 Forbidden) 12.
端点(endpoint):一个可以通过网络来访问和定位某个openstack service的地址,即用户创建一个项目过程中需要的各个服务资源的位置 虚拟机创建流程 工作流程 用户通过命令行或者horizon...keystone认证通过之后,返回给nova,nova即开始执行创建虚拟机的请求。首先需要镜像资源,nova带着令牌(token)和所需要的镜像名向glance提出镜像资源的请求。...keystone认证成功后,返回给glance。glance向nova提供镜像服务。...keystone认证成功后,返回给nuetron。nuetron则给nova提供网络规划服务。 nova获取了镜像和网络之后,开始创建虚拟机,通过hypervisior可调用底层硬件资源进行创建。...创建完成返回给用户,成功执行了用户的请求。
比如,使用GET方法时,对应请求资源的实体会做为响应返回;而使用HEAD方法时,对应请求资源的实体首部不随报文主体作为响应返回(即在响应中只返回首部,不会返回时主体部分)。...该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。另外,也不允许返回任何实体的主体。比如,当从浏览器发出请求处理后,返回204响应,那么浏览器显示的页面不发生更新。...301,302,303之间的联系 当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送。...该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但未满足条件的情况。 304状态码返回时,不包含任何响应的主体部分。304虽然被划分在3XX类别中,但是和重定向没有关系。...403 Forbidden ? 该状态码表明对请求资源的访问被服务器拒绝了。服务器没有必要给出拒绝的详细理由,但如果想做说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到。
概述: Laravel中在Controller.php文件中引用了trait为ValidatesRequests,这个trait源码在/Illuminate/Foundation/Validation/...(一)、post表单提交,并在视图中显示验证错误信息 1、先在routes.php中写两个路由: Route::get('laravel/test/validator', 'PHPTestController...script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"> 在浏览器中访问...4、写显示验证错误信息视图 在laravel中,laravel会在每次请求把errors变量刷到session中,和视图模板绑定,所以errors变量在视图模板中可用,官方文档原话:"So, it is...1、在TestValidatorRequest类里写验证规则 authorize()方法主要用来设置用户权限,返回false时会返回一个403并且控制器代码不能执行,如没有权限的用户不能提交表单。
Placement概述 Placement服务跟踪资源(比如计算节点,存储资源池,网络资源池等)的使用情况,提供自定义资源的能力,为分配资源提供服务。...Placement在openstack的Stein版本之前,属于Nova组件的一部分。该组件应该在Nova之前安装。...支持部署在多种服务器上,如: apache2 附加 mod_wsgi 模块 apache2 附加 mod_proxy_uwsgi 模块 nginx 附加 uwsgi 模块 nginx 附加 gunicorn...endpoint create --region RegionOne \ placement internal http://master01.boysec.cn:8778 # 创建管理接口的端点...Fallback to using that endpoint as the base url.: Forbidden: Forbidden (HTTP 403) 解决问题 修改placement配置文件中添加以下信息
例如,对于在移动应用程序中使用的实际 api,原子资源的使用是次优的。再如,完全拒绝请求之间的数据存储实质上禁止了随处可见的“用户会话”机制。 不过,我想说,也没你想的那么糟糕!...在每个测试中,模拟一个真实的 HTTP 请求并验证服务器的响应。例如,在 Node.js 的单元测试中,用于模拟请求的有 supertest 和 chai-http包。...现在,假设我们有一个 user.models 和一个返回所有 users 的 GET /users 端点。...基于客户端类型分离端点 通常,相同的端点会根据客户端类型或发送请求的用户角色返回不同的数据。例如,对于移动应用程序用户和后台管理人员来说,GET /uses 端点可能存在很大的不同。...因此,如果要多次描述同一端点,可以在路径后面的括号中添加其类型。
: 1.一个用户试图从浏览器里面打开连接到虚拟机的VNC Client 2.浏览器向nova-api发送请求,要求返回访问vnc的url 3.nova-api调用nova-compute的get vnc...console方法,要求返回连接VNC的信息 4.nova-compute调用libvirt的get vnc console函数 5.libvirt会通过解析虚拟机运行的/etc/libvirt/qemu...会随机生成一个UUID作为Token 8.nova-compute将libvirt返回的信息以及配置文件中的信息综合成connect_info返回给nova-api 9.nova-api会调用nova-consoleauth...将connect_info中的access url信息返回给浏览器:http://172.24.1.1:6080/vnc_auto.html?...验证了这个token,将这个instance对应的connect_info返回给nova-novncproxy 16.nova-novncproxy通过connect_info中的host, port等信息
在Web开发世界中,API通常是响应客户端结构化文本数据请求的网站端点集合。 Web开发人员广泛使用和讨论的另一个概念是RESTFul Web API。...其主要组成部分有: URL:您的资源在Web上的位置,您的端点的地址。一个示例是使用http://example.org/users列出您的用户。 请求方法:客户端希望在特定端点上执行的操作。...资源组:相关资源组,比如Users。 资源:定义唯一资源,它的端点和操作。 参数:在端点中用于指定动态参数,如ID或查询搜索。 响应:内容类型,HTTP状态代码和主体数据。...GET /cakes应该返回一个蛋糕列表,所以GET /cake/1应该返回第一个蛋糕,对吧?很不幸的是,不行。即使它在我们的语言是有道理的,它只会用更多端点搞乱客户端和开发人员。...易于使用:端点,资源和输出数据应尽可能遵循相同的结构。 难以误用:如果发出了错误的请求,返回错误并提供信息。 简单是比复杂更好:简单的事情在每个方面都很容易。
2xx (3种) 200 OK:表示从客户端发送给服务器的请求被正常处理并返回; 204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回...、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码; 307 Temporary...Redirect:临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况); 4xx (4种) 400 Bad Request:表示请求报文中存在语法错误...; 401 Unauthorized:未经许可,需要通过HTTP认证; 403 Forbidden:服务器拒绝该次访问(访问权限出现问题) 404 Not Found:表示服务器上无法找到请求的资源,除此之外...,也可以在服务器拒绝请求但不想给拒绝原因时使用; 5xx (2种) 500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;
Laravel 用一个数组保存你注册过的所有路由;在进行路由匹配时,Laravel 会用你当前请求的 pathinfo 来匹配已经注册的所有路由;当你的路由数量超级多时,最坏情况下你需要 O(n) 次才能找出匹配的路由...会直接帮我们验证并返回错误信息,如下面的 teacher_id 在数据库中并不存在。...它为我们提供了种类众多的测试,包括 HTTP 测试、浏览器测试(行为测试)、单元测试、数据库测试等。...从容器里取东西(get) 所有用到容器的框架其本质都是在框架启动的时候疯狂的往容器里装东西,容器里面的东西越多,容器提供的功能越大。...container 中设置不同的值;如 CacheServiceProvider 会向容器中注册 Cache 对象,后续在使用 Cache::get 时就使用的是这里注册的 Cache 对象,在注册阶段不应该向容器中获取值
它的工作原理 浏览器向包含用户身份和密码的服务器发出POST请求。服务器使用在用户浏览器上设置的cookie进行响应,并包含用于标识用户的会话ID。...JSON Web Token 的工作原理 浏览器或移动客户端向包含用户登录信息的认证服务器发出请求。认证服务器生成新的JWT access token并将其返回给客户端。...laravel-cors 在我们composer.json 中Require the barryvdh/laravel-cors package 并更新我们的依赖。...为了简洁起见,我将把我所有的代码放在route.php文件中,该文件负责Laravel路由和委托请求给控制器。...这是我们的拦截器的一个例子,它们在浏览器的本地存储中可用时注入一个token。
进行资源更新,数据保存在 API Cell 中的 nova_api 数据库中,这部分更新的数据在 Pike 版本中仅仅只有 cpu/ram/disk 这3个数据,在之后的版本中,还逐渐增加了像 GPU...接收用户发起的虚拟机创建请求,处理后通过 rpc 调用 nova-conductor 服务; 2. nova-conductor 服务收到请求后,会构造一个虚机创建任务,之后通过 rpc 调用 nova-scheduler...最终会返回一个最优的主机给 nova-conductor 服务; 4. nova-conductor 在收到 nova-scheduler 返回的主机后,就需要将请求通过 rpc 发送给相应主机上的...但在多 Cell 架构下,Nova Scheduler 服务连接到的是 API Cell 中的 MQ,而所有的计算节点,都连接到的是各自所在 Cell 中的 MQ,Compute 和 Scheduler...在之后的 Queens 版本中,社区通过返回备用主机的方式,解决了这个问题。
规范是原请求是post请求,不能进行重定向,原请求是get可以进行重定向,但在浏览器的实际情况下,无论是get还是post,都可以进行重定向,所以由于历史原因,就延伸出了303(原302的实际效果)和307...404 服务器无法找到所请求的资源。404状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回410而不是 404。...410 说明请求的目标资源在原服务器上不存在了,并且是永久性的丢失。...501 服务器错误响应码表示请求的方法不被服务器支持,因此无法被处理。服务器必须支持的方法(即不会返回这个状态码的方法)只有 get、head。 502 表示网关或者代理服务器错误。...504 表示请求超时,扮演网关或者代理的服务器无法在规定的时间内获得想要的响应。 505 表示服务器不支持请求所使用的 HTTP 版本。
以nova为例,authtoken filter在/etc/paste.ini目录中(如果不熟悉WSGI框架,暂且忽略之) keystone在openstack的位置如下: 3. ...Tenant Tenant即租户,早期版本又称为project,它是各个服务中的一些可以访问的资源集合。比如通过nova创建虚拟机时要指定到某个租户中,在cinder创建卷也要指定到某个租户中。...用户访问租户的资源前,必须与该租户关联,并且指定该用户在该租户下的角色。 3)....Role Role即角色,可以理解为VIP等级,用户的Role越高,在openstack中能访问的服务和资源就更多。 4)....,是否有权限创建虚拟机等)成功后,然后再把请求下发到nova,最终创建虚拟机
领取专属 10元无门槛券
手把手带您无忧上云