PHP7.0中的协议设计有哪些实现方式?

PHP7.0 中的协程与协议设计

1. 后台进程

PHP CLI 提供并行处理进入的请求的能力,但是这并非适用于大型应用程序,因为 CLI 在每个请求之间都会保持一个裸的发展环境。当处理大量并发请求时,进程管理会成为一个问题,因为每个进程都需要大量的内存,而进程间的通信会消耗不必要的资源。 下面就是后台进程编写一个插件,监控与分配请求。此插件应该如何编写?

首先,我们来看看 PHP CLI 主事件循环。当解析到一个 HTTP 请求,并创建一个相关的「Request」对象后,会调用 PHPCLI 的「tick」方法,进而触发 PHP 的脚本文件。在此之后,脚本需要对请求进行响应。

当此脚本完成时,必须在 CLI 中返回以便继续下一个(并发)请求。因此,我们需要对脚本的执行时间进行限制,否则会影响后续的请求调度。

2. 后台进程计划任务

任务计划是一项非常重要的功能,可以在预定时间或根据特定的触发器(例如,消费队列)中调用一个 API 以执行特定任务。如果您使用的是 CronJob,则可能需要在每个计划的任务之间添加休眠时间。如果您使用的是消息传递系统(例如,RabbitMQ),则应该仔细选择如何处理队列的消耗。

因此,我们可以固定消耗队列或随机抛出一个「休眠时间」来控制定时任务。

3. 协议

从 P3P 到 SAML,协议总是 Web 开发中的一个重要主题。如今,您可以使用 JSON Web Tokens(JWT)或 OAuth2 轻松保护您的应用程序和 API。由于在网上处理敏感任务时安全性至关重要,所以你必须掌握至少一种协议及其实现方式。

4. 协议的实现

JSON Web Tokens(JWT)和 OAuth2 是 Web 应用程序和 API 开发的两种最常见的协议,JavaScript 开发人员可能还熟悉像 OpenID Connect 之类的标准。无论你使用哪种协议实现,你应该遵循最佳实践,并遵循严格的安全规则。

常用的使用范例包括:

- 使用 JWT 验证 API 请求

- 实现 OAuth2 认证流程

- 采用 OpenID Connect 保护你的应用程序

- 为某些用户定义自定义权限

#### 总结

PHP7.0 中的协议设计比较成熟,开发人员应该熟练掌握有关协议的实现方式,以确保其应用程序和 API 的安全性。对于大规模应用程序,后台进程也是必不可少的。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签