
| URI | 说明 | 修改建议 |
|---|---|---|
| GET/articles?au=lily | 正确用法 | |
| GET/a/1 URI | 必须具有语义 | GET/student/1 |
| POST/createArticle/1 | URI 必须使用名词 | POST/article/1 |
| GET/articles/author/1 | URI 扁平化,不超两级 | GET/articles/author?id=1 |
| DELETE/articles/1 | URI 名词区分 单复数 | GET/articles?au=lily DELETE/article/1 |
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {}
请求注解:
路径变量:放在 uri 中的变量。
@PathVariable(“name”):将 路径变量 按照别名 自动注入到 所修饰的参数中,(可省略)
@GetMapping("user/{id}")
public String user(@PathVariable("id") int alias) {}
此时 http:localhost:8080/test01/1 ;alias 值为 1
简单请求是指标准结构的 HTTP 请求,对应 GET / POST 请求。
非简单请求是复杂要求的 HTTP 请求,指 PUT / DELETE / 扩展标准请求。
两者最大区别是 非简单请求 发送前需要 发送 预检请求 。
Spring MVC 中使用非简单请求,想要完美支持 参数的获取,需要 在 web.xml 中配置 过滤器 进行支持。
formContentFilter org.springframework.web.filter.FormContentFilter
formContentFilter /*
hiddenHttpMethodFilter org.springframework.web.filter.HiddenHttpMethodFilter
hiddenHttpMethodFilter /*
同源策略阻止从一个域加载的脚本去获取另一个域上的资源。
只要 协议、域名、端口 有任何一个不同,都被当作是不同的域。
因此在不同域名下,即使能够成功获得响应数据,但因为同源策略的阻挡,在 浏览器 这里也不会对数据进行处理。
浏览器 Console 看到 Access-Control-Allow-Origin 就代表跨域了

在缓存时间内 同样的请求就能直接根据结果来 同意 / 中断 请求。能够降低服务器的压力。
其原理就是在 响应标头中增加了 Vary: Access-Control-Request-Method 与 Vary: Access-Control-Request-Headers