JavaWeb学习打卡-Day8-Spring Task、WebSocket、RESTful API、@RequestBody@PathVariable和@RequestParam

Spring Task

  • Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。
  • 定位:定时任务框架。
  • 作用:定时自动执行某段Java代码。
  • 应用场景:信用卡每月还款提醒、售票系统处理超时未支付订单、入职纪念日为用户发送通知······
cron表达式
  • 其实就是一个字符串,通过cron表达式可以定义任务触发的时间。
  • 构成规则:分为6或7个域,由空格分隔开,每个域代表一个含义。
  • 每个域的含义分别为:秒、分钟、小时、日、月、周、年(可选)

WebSocket

  • WebSocket 是一种基于 TCP 连接的全双工通信协议,即客户端和服务器可以同时发送和接收数据。
  • WebSocket 协议本质上是应用层的协议,用于弥补 HTTP 协议在持久通信能力上的不足。客户端和服务器仅需一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
  • 应用场景:视频弹幕、实时消息推送、多用户协同编辑······
WebSocket 和 HTTP
  • 两者都是基于 TCP 的应用层协议,都可以在网络中传输数据。
  • 区别:
    • WebSocket 是一种双向实时通信协议,而 HTTP 是一种单向通信协议。并且,HTTP 协议下的通信只能由客户端发起,服务器无法主动通知客户端。
    • WebSocket 使用 ws:// 或 wss://(使用 SSL/TLS 加密后的协议,类似于 HTTP 和 HTTPS 的关系) 作为协议前缀,HTTP 使用 http:// 或 https:// 作为协议前缀。
    • WebSocket 可以支持扩展,用户可以扩展协议,实现部分自定义的子协议,如支持压缩、加密等。
    • WebSocket 通信数据格式比较轻量,用于协议控制的数据包头部相对较小,网络开销小,而 HTTP 通信每次都要携带完整的头部,网络开销较大(HTTP/2.0 使用二进制帧进行数据传输,还支持头部压缩,减少了网络开销)。

RESTful API

REST 风格
  • REST(REpresentational State Transfer):表现形式状态转换。
  • REST风格访问资源时使用行为动作区分对资源进行了何种操作。
  • 优点:书写简化;隐藏资源的访问行为,无法通过地址得知对资源是何种操作。
    JavaWeb学习打卡-Day8-Spring Task、WebSocket、RESTful API、@RequestBody@PathVariable和@RequestParam_第1张图片
  • 上述行为是约定方式,可以打破,所以称REST风格,而不是REST规范。描述模块的名称通常使用复数,表示此类资源,而非单个资源,例如:users、books、accounts…
@RequestBody、@PathVariable、@RequestParam
  • 辨析:
    • @RequestParam用于接收url地址传参或表单传参。
    • @RequestBody用于接收json数据。
    • @PathVariable用于接收路径参数,使用{参数名称}描述路径参数。
  • 应用场景:
    • 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广。
    • 如果发送非ison格式数据,选用@RequestParam接收请求参数。
    • 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@Pathvariable接收请求路径变量,通常用于传递id值。

你可能感兴趣的:(学习,spring,websocket)