05 January 2015

缘起

我最早是在学Rails时,接触了REST。后来,买了本《Rest实战》的书,加入了REST讨论组。今天,在群里看到有人提问:”只有一个地址,需要携带json数据,可以使用REST吗?” 然后,我回答说,应该不可以,只能使用post。为此,我仔细思考了一下这个问题,以下,自问自答。

正文

问: REST是什么?

答: 个人认为,rest是针对误解HTTP,滥用post而提出的。本质是,对HTTP的动词和语义的再认识,实践上,可以简单理解为Rails中的资源路由。

问: 如何区分使用GET和POST?

答: GET是幂等的,可缓存的,POST不是。GET携带的数据主要通过URL,URL存在长度的限制,具体因浏览器不同而不同,这里限制最多的,还是要数IE, 以下是搜集过来的数据:

  # 浏览器的URL的长度限制(单位:字符个数)
  IE : 2803
  Firefox:65536
  Chrome:8182
  Safari:80000
  Opera:190000

  # 浏览器单个域中最大cookie数
  IE :原先为20个,后来升级为50个
  Firefox: 50个
  Opera:30个
  Chrome:180个
  Safari:无限制

问: 还有其他的见识吗?

答: 没有了。有空,学习一下RestClient这个gem包。

后记

理解REST,最重要的还是理解HTTP。




傲娇的使用Disqus