RESTful风格简解

RESTful(Representational State Transfer) 表象状态传输,是一种风格,而不是一个协议。

http数据请求

http共7种方式的数据的请求(GET、POST、PUT、DELETE、HEAD、TRACE、OPTIONS)

非type,为data:

    type:"POST",
    data:{_method:"DELETE", userId:userId},
  1. GET
    1. 参数通过url传递
    2. 请求会被浏览器主动cache
    3. 非 ASCII 字符会被转码
    4. 参数大小有限制(一般浏览器限制为2K)
  2. POST
    1. 参数存在Request body中
    2. 请求无大小限制(一般服务器只能处理64K大小的url)
    3. 后一个请求不会把第一个请求覆盖掉。(一般用来新增资源)
  3. PUT
    1. 如果两个请求相同,后一个请求会把第一个请求覆盖掉
    2. 一般用来更新资源
  4. DELETE
    1. HTTP规范允许服务器在不通知客户端的情况下撤销请求
    2. 一般用来删除资源
  5. HEAD
    1. 与GET方法的行为很类似,但服务器在响应中只返回实体的主体部分。这就允许客户端在未获取实际资源的情况下,对资源的首部进行检查,使用HEAD
    2. 可以通过查看响应中的状态码,可以确定资源是否存在
    3. 可以通过查看首部,测试资源是否被修改,在请求最终到达服务器时,服务器会弹回一条TRACE响应,并在响应主体中携带它收到的原始请求报文的最终模样,这样客户端就可以查看HTTP请求报文在发送的途中,是否被修改过了
  6. TRACE
    1. 会在目的服务器端发起一个“回环”诊断
  7. OPTIONS
    1. 用于获取当前URL所支持的方法。若请求成功,则它会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”

Spring处理RESTful请求

restful只是一种风格,不遵循也不会发生错误

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping

  1. 对应处理get、post、put、map请求,在spring里面的源码为RequestMapping加对应的请求方法
@RequestMapping(method = RequestMethod.POST)
  1. GetMapping,处理资源的查询
  2. PostMapping,接受数据的请求和新增
  3. PutMapping,资源的更新
  4. DeleteMapping,资源的删除

例子:
传统风格
查询 /user/query?name=tom GET
详情 /user/getInfo?id=1 GET
创建 /user/create?name=tom POST
修改 /user/update?id=1&name=jquery POST
删除 /user/delete?id=1 GET
RESTful风格
查询 /user?name=tom GET
详情 /user/1 GET
创建 /user POST
修改 /user/1 PUT
删除 /user/1 DELETE

你可能感兴趣的:(RESTful风格简解)