乌龟监控图,自动刷新:
设备
cubieboard2 + 摄像头 + 乌龟
说明
blog更换了国外空间后,SCP速度太慢,还是把图片存储在家里
cubieboard
再映射外网速度稍微快些.
RESTful中,GET用来获取资源,POST用来新建资源或更新资源,PUT用来更新资源,DELETE用来删除资源.可能有不少人跟我一样,开始都是这样理解RESTful的.
PUT POST 新增资源:
/catgory/海鲜
/category/{$category_id}
第一种情况,新增资源的uri是由客户端来决定的,此时使用PUT.
第二种情况,新增资源的uri是服务端自动产生的ID,是由服务端来决定的,此时使用POST.
引用http://www.restapitutorial.com/ 的一段话.
#PUT is not a safe operation, in that it modifies (or creates) state on the server, but it is idempotent. In other words, if you create or update a resource using PUT and then make that same call again, the resource is still there and still has the same state as it did with the first call.
从HTTP协议的角度出发,当修改一个资源的内容时,使用PUT请求,其实这是对RESTful的一个错误理解.REST是一种风格,但是还是依赖于HTTP协议.在HTTP中,PUT被定义为idempotent的方法,POST则不是,这是一个很重要的区别.idempotent
是数学中的一个概念,既幂等
;何谓幂等
?一个方法重复执行多次,产生相同的效果,就叫做幂等
.
继续看上面两种情况,第一种,不管提交几次请求,总是产生海鲜
这个分类,所以应该就算是幂等的;那是否可以理解为:PUT只有在不会对服务器状态产生影响的时候才使用?继而是否可以理解为 POST 可以用来新增或者修改资源,而PUT只能用来新增资源?
What The Fuck!
好吧,REST只是风格而不是标准,怎么做,就看个人心情了.
深入学习三部曲:what.how.why
使用分布式数据库,主从读写分离
优化数据库访问,每次查询只返回需要的结果,以及合理使用索引,读取频繁的表缓存起来
数据缓存 如memcache,apc,redis
前台页面静态化,并使用缓存技术,如squid,varnish
禁止外部盗链
做流量统计分析
使用Nginx等这些资源占用率更小、负载能力更高的WEB服务器
使用反向代理或者DNS轮询来做负载均衡
CDN加速
memcache、APC、redis 数据缓存/后端缓存(单服务器使用APC,多服务器使用memcache redis)
squid、varnish 文件缓存/前端缓存
Copyright © 2016 yjiang's cake