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 是数据结构存储键值对,允许快速查找、插入和删除。它使用哈希函数映射每个键到桶索引,使访问高效。

如何工作

  1. 键给到 HashMap
  2. 哈希函数转换每个键为数字指向桶索引指向数据值
  3. 当两个键映射到相同桶索引,碰撞发生
  4. 碰撞处理通过链接条目一起在链在相同桶内。这完成使用链表或甚至树在某些情况
  5. 值快速检索通过哈希键和查找正确桶

虚拟化解释:从裸机到托管 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?

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。