URN作用就好像一个人的名字,
URL就像一个人的地址(定位该资源的主要访问机制(如其网络“位置”))。
换句话说:URN确定了东西的身份,URL提供了找到它的方式。
URI:Uniform Resource Identifier,统一资源标识符
URL:Uniform Resource Location统一资源定位符
REST
REST即Representational State Transfer 即表现层状态转换。HTTP1.0面向的是Web的静态文本,随着Ajax等出现,需要制定新的协议规范动态富文本的传输和使用。
REST的五个关键词:
资源(resource):是互联网中信息数据的一种抽象性描述,REST架构即面向资源的架构,资源是整个网络处理的核心。
资源表述(representation): 即资源的表现形式,常用的有HTTP文本,Json,XML等。
状态转移(state transfer):资源的转化或则传输(“状态”指的是资源在某一时刻的表现形式,“转移”是指按照一定的逻辑转化资源表现形式或者传输资源)。
统一接口(Uniform inference):因为是分布式架构,为了方便不同服务器用户使用和规范,REST要求使用统一的接口规范。
超文本驱动:REST架构的提出很大程度上是用来指导HTTP1.1协议的制定,支持超链接和URI形式的驱动方式,URI可以理解成资源的唯一标志,是资源的地址。
REST的五个架构约束
客户-服务器:REST是一种响应式架构,一般只允许客户端主动向服务器端发起响应请求,服务器端做出对应的响应操作。
无状态:状态是指服务请求的状态,是用户交互时的会话信息。有状态的Web服务会将用户的相关信息保存在与该用户交互的服务的session中,Client的用户请求只能被该server接受和理解,不利于负载均衡。无状态的Web服务中,Clinet的用户请求必须携带服务要参考的全部信息,每一个请求都是独立的,可以被任何可用的服务接受,便于进行扩展。
缓存:指的是客户端可以缓存一些需要的数据,以便于同样的请求操作复用。
统一接口: 参考上述“五个关键词”。
分层系统:REST将结构分层的思想使得各层服务器相对独立,各层服务器只需面向直接相邻的服务器或用户,提高了系统的可伸缩性。
REST的六个特征
面向资源、可寻址、连通性、无状态、统一接口、超文本驱动。
可寻址:URI是资源的唯一标识(地址),系统可根据URI定位或重定位到资源。
连通性:资源在设计时要考虑资源之间的联系,避免存在孤立的资源。
RestFul 一种url连接新写法,遵守http协议,和之前连接写法没有本质上的不同,url参数拼接方式改变,
参数拼接 login?username=zhangsan 改为了 login/zhangsan 更加安全
RestFul的响应信息是json,细分了多种请求方式的使用
get 查询post 添加 表单提交delete 删除patch 修改put 添加
-
@RestController= @Controller+@ResponseBody
相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,
但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
-
查询 get方式请求
可以在Controller中设置必须使用get请求
@RequestMapping(path = "getAllGuru",method = RequestMethod.GET)
method = RequestMethod.GET 规定请求类型为Get
-
@GetMapping 等价于 @RequestMapping(path = "getAllGuru",method = RequestMethod.GET) 要求请求方式必须是get
@PostMapping
@DeleteMapping
@PatchMapping
-
@PathVariable("name") 获得地址中的参数 用于Rest风格 配合占位符的url地址写法使用 "testGet/{name}"
@RequestParam request.getAttribute()
@GetMapping("testGet/{name}")
public String testGet(@PathVariable("name") String name){}