例题 - 访问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 的参数里