REST(表述性状态转移)是构建 API 的架构风格使用 HTTP 进行通信。被认为是 RESTful,API 应该遵循六个关键约束:
REST 六个约束
1. 客户端 - 服务器(Client-Server)
- 分离用户界面从数据存储和处理
- 允许每边独立演进
2. 无状态(Stateless)
- 每个请求包含所有信息需要处理它
- 服务器不存储会话状态在请求之间
3. 统一接口(Uniform Interface)
- 一致资源命名和格式跨 API
- 例如,“/products”、“/users”
4. 可缓存(Cacheable)
- 响应明确指示如果它们可以缓存(例如,Cache-Control)
- 提高性能
5. 分层系统(Layered System)
- 请求可能通过多个层(负载均衡器、认证服务等)在到达 API 服务器前
- 但对客户端它出现为单个端点
6. 按需代码(Code on Demand,可选)
- 服务器可以发送可执行代码(如 JavaScript)到客户端扩展其功能
Java HashMaps 如何工作
HashMap 是数据结构存储键值对,允许快速查找、插入和删除。它使用哈希函数映射每个键到桶索引,使访问高效。
如何工作
- 键给到 HashMap
- 哈希函数转换每个键为数字指向桶索引指向数据值
- 当两个键映射到相同桶索引,碰撞发生
- 碰撞处理通过链接条目一起在链在相同桶内。这完成使用链表或甚至树在某些情况
- 值快速检索通过哈希键和查找正确桶
虚拟化解释:从裸机到托管 Hypervisor
在容器和 serverless 前,有虚拟化,现代云计算基础。这里是简单分解虚拟化如何工作,从裸机到托管 hypervisors:
Type 1 / 裸机 Hypervisor
- Hypervisor 直接运行在硬件
- 没有操作系统在它下面
- Hypervisor 是操作系统层
- VMware ESXi、Microsoft Hyper-V 和 KVM 都是 Type 1 hypervisors
- 它们在物理服务器上启动并管理 VMs 有直接硬件访问
- 每个 VM 获得自己完整操作系统。Windows、Fedora、Ubuntu。VMs 之间完全隔离。一个崩溃?其他继续运行
- 这是在数据中心和云提供商运行什么。当你启动 EC2 实例在 AWS,它运行在 Type 1 虚拟化(他们使用自己定制 Nitro hypervisor 现在,但相同概念)
Type 2 / 托管 Hypervisor
- Hypervisor 运行作为应用在顶部主机操作系统
- 你运行 Windows 或 macOS,然后你安装 VirtualBox 或 VMware Workstation 在它顶部
- Guest VMs 仍然获得完整操作系统,但现在有额外层。你 VM 与 hypervisor 交谈,它与主机 OS 交谈,它与硬件交谈
- 更多开销,稍低性能,但更方便用于开发和测试。这是你在你笔记本上使用什么。运行 Linux VM 在你 MacBook?那是 Type 2
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP192: What is a REST API?。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。