restful get post

RESTweb

全称 representational state transfer,中文意思是表征性状态转移。浏览器

什么是表征,其实就是资源,而任何事物,只要有引用的必要就是一个资源,资源能够是一个实体(好比手机),也能够是一个抽象概念(好比价值)缓存

RESTful架构应该遵循统一接口原则,统一接口包含了一组受限的预约义的操做,不论什么样的资源,都是经过使用相同的接口进行资源的访问。接口应该使用标准的HTTP方法如GET,PUT和POST,并遵循这些方法的语义。安全

若是按照HTTP方法的语义来暴露资源,那么接口将会拥有安全性和幂等性的特性,例如GET和HEAD请求都是安全的, 不管请求多少次,都不会改变服务器状态。而GET、HEAD、PUT和DELETE请求都是幂等的,不管对资源操做多少次, 结果老是同样的,后面的请求并不会产生比第一次更多的影响。服务器

 

安全和幂等的意义在于:当操做没有达到预期的目标时,咱们能够不停的重试,而不会对资源产生反作用。从这个意义上说,POST操做每每是有害的,但不少时候咱们仍是不得不使用它。架构

HTTP方法的安全性和幂等性app

方法名         安全性  幂等性post

GET               是          是编码

HEAD            是          是url

DELETE        否          是

OPTIONS      是          是

PUT               否          是

POST             否          否

 

 

get和post的区别

w3c

GET后退按钮/刷新无害,POST数据会被从新提交(浏览器应该告知用户数据会被从新提交)。
GET书签可收藏,POST为书签不可收藏。
GET能被缓存,POST不能缓存 。
GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中。
GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。
GET只容许 ASCII 字符。POST没有限制。也容许二进制数据。
与 POST 相比,GET 的安全性较差,由于所发送的数据是 URL 的一部分。在发送密码或其余敏感信息时毫不要使用 GET !POST 比 GET 更安全,由于参数不会被保存在浏览器历史或 web 服务器日志中。
GET的数据在 URL 中对全部人都是可见的。POST的数据不会显示在 URL 中。
做者:杨光 连接:https://www.zhihu.com/question/28586791/answer/145424285。
相关文章
相关标签/搜索