头图

HTTP请求

组成

请求由三部分组成

  • 请求行

    • 类型 uri 协议名
  • 请求头
  • 请求体

telnet

telnet ip地址 端口号之后可以直接使用上面【http请求】组成的格式发送请求

三种请求体类型

  • application/x-www-form-urlencoded
  • application/json
  • multipart/form-data

三种请求体类型总结

客户端发送

  • 编码

    • application/x-www-form-urlencoded :url 编码
    • application/json:utf-8 编码
    • multipart/form-data:每部分编码可以不同
  • 表单只支持以 application/x-www-form-urlencoded 和 multipart/form-data 格式发送数据
  • 文件上传需要用 multipart/form-data 格式
  • js 代码可以支持任意格式发送数据

服务端接收

  • 对 application/x-www-form-urlencoded 和 multipart/form-data 格式的数据,Spring 接收方式是统一的,只需要用 java bean 的属性名对应请求参数名即可
  • 对于 applicaiton/json 格式的数据,Spring 接收需要使用 @RequestBody 注解 + java bean 的方式

session原理

为什么用session

Http请求是无状态的,所以对服务器来讲,服务区分这个请求是来自于哪里,无法识别来自同一来源的请求。

什么是session

标识请求的一种方式。

如何使用session

客户端发送http请求之后,服务器会根据http请求上带着的数据生成一个session对象,存储在服务器端,并将sessionid返还给客户端。这样以后每次客户端带着sessionid访问服务器请求的时候,服务器就知道是从哪里来的请求了。

session有什么问题

session是不支持跨域的,也就是说前端和后端必须在同一台服务器上。这样对于一些分布式场景就无法适用了。

原理图

1728519400388.png

JWT原理

为什么用JWT

解决分布式下session的场景

什么是JWT

JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。
JSON Web Token由三部分组成,它们之间用圆点(.)连接。即:Header+Payload+Singnature。

如何使用JWT

客户端发送http请求之后,服务器生成token,并返回给客户端,这样每次客户端访问资源的时候都带着这个token,服务器再验证一下,如果通过验证,则给于token。
image.png


maktub
1 声望0 粉丝

时间是最昂贵的礼物