严格来说有三个地方都要遵守规定
server 检查header 的型式是否符合该api规定 (get post put delete)(一个api择1),和
application/json,application/xml(择1)
确定符合规范才交由后端(程式部份)的路由来处理
没有的话就会直接挡掉proxy至40x错误,省掉应用端跑一次程序的资源
(跑高突发流量很重要,基本上避开cache后,你请求至后端应用时,thread就开始跑,记
忆体就开始吃)
在application端(PHP, .Net, Python(Dijango), Ruby(rails), Java(struts2))
路由的程式当中再同上检验一次(免得以后移交主机或扩充时,server那有漏洞)每支api
的规范透过程式来决定是否处理或跳转页面
Client端,也就是请求端,也是照规定予以请求
一般你的RESTful api文件出来后,负责该职务的遵守来设定即可(但我想有非常非常非常
非常非常多的公司只做到三分之二甚至三分之一,可能市场小遇不到高突发流量/安全性
问题…),最后再走SSL加密传输;没照规定的request请求根本就进不去,所以我想原PO
真正问题是各领域的细节从来没有人让你知道。
※ 引述《xacross (xacross)》之铭言:
: ※ 引述《quasi (嘉嘉有本难念的经)》之铭言:
: : 如题
: : 查了一个小时还是觉得有点抽象
: : post get 这两个我都用过
: : 可put delete我就完全没用过了
: : 实务上 捞取资料我都用 GET,传送表单则用POST
: : 因为GET较快,但不安全;POST较安全。
: POST 一样是不安全的,拦截 HTTP Request 一样可以直接看到资料,
: 真是要安全的话都要透过 https
: : 但我其实不是很了解确切的差别 ..
: : 问学长也都没得到满意的答复
: : 上网查也几乎都是英文,英文真的满需要再加强的 。。
: : 现在主要有两个问题想请教
: : 1.REST的概念
: : 2.post get put delete差异,使用时机
: : 有劳各位大大了
: 1.
: REST 是一种网络服务操作的概念,假设你的网站现在要设计管理使用者的资料方式。
: 新增、删除、更新、读取使用者,你会对下面这个网址做 POST, DELETE, PUT, GET
: http://foo.com/user , 注意你的纳址是只有 user(单一名词),
: 取得使用者资料用 GET 方式,
: 而不是设计一个网址叫 http://foo.com/get_user (这个网址不符合 REST 精神,
: 因为你是要“取得”user 的资料,用 GET 就已经可以表示"取得"的动作,不必
: 再网址上重复)
: 这样的设计,可以透过只要更改 HTTP METHOD 就知道要做什么操作
: 2.
: 网页程式最常做的 CRUD 动作 (create, read, update, delete)
: 对应到 REST 就是 POST, GET, PUT, DELETE。
: 注意,不是说 create 就只能用 POST,你也可以用 GET 去 create 资料,
: 只是这样子就没有符合 REST 的精神。