九章算法-系统设计#4 网站设计

例题 - 访问google时候发生了什么

  • 首先访问了距离你最近的DNS服务器 (Domain Name Service)
  • 你的浏览器向该IP发送http/https请求
    • 每台服务器计算机联网都需要IP地址
    • 通过IP地址就能找到该服务器/计算机
  • Web Server接收到请求,发送请求给80端口的HTTP Server
  • 比较常见的HTTP Server,常见的serverApache,Unicorn,Gunicorn,Uwsgi
  • HTTP Server将请求转发给Web Application。比较火的Application Framework: Django, Ruby on Rail, NodeJS, Flask
  • Web Application 处理请求
    • 根据/ 路径找到逻辑处理模块
    • 根据请求参数Get, Post觉得获取存储数据

API design

Rest API: 你要获得的数据是什么,路径的主目录就是什么。REST = Representative State Transfer

举例:需要获取problem, 就是/api/problems。需要获取submission就是/api/submissions

Restful API 的通俗定义

  • 每个 URL 代表某种类型的一个或者多个数据
    • 如 /api/problems/ 表示得到所有 problems 的数据
    • 如 /api/problems/1/ 表示得到 problem_id=1 的这个 problem 的数据
  • 使用 HTTP 的四个动作(POST,DELETE,GET,PUT)来代表对数据的增删查改
  • 所有的筛选条件,创建参数,都放到 HTTP 的参数里

例题 Design New Feed API