前言
报文= 头+ 身体(body)
身体(body)解读方法由头的Content-Type决定
客户端和服务端在交互的过程中都都是需要遵循http协议
客户端向服务端交互的工程中,可以理解客户端向服务端发送一个报文 , 这个报文的组成是 头 + 身体(body)组成
头: 主要包含的url ,请求方式(get、post),请求头 等其他要告诉服务端的信息组成
身体: 传输的主要内容
当服务端在接收到这个报文之后, 先对头部进行解析,解析到
1、当请求方式的是 get 就直接获取头部上的url上key&value 进行获取相对应的数据返回给前端(当然头也有其他信息,没有详细讲解),
2、请求方式是post 这个时候根据解析头部的Content-Type 进行,判断需要要哪种方式对身体(body)进行解析
一、 Content-Type
请求的body中,各大语言都会封装出函数,在body中解析出post请求参数。那post参数是什么样子呢?
—常见的key=value的形式 、 json、xml格式
这些格式在传递的时候,会受到Content-Type影响,不同的Content-Type传递格式不一样,服务端就会根据Content-Type进行相应格式的解析。
1、Content-Type:application/x-www-form-urlencoded,类似form表单和get,post请求都是这个,
2、Content-Type:application/json 如果要发送json格式,request header中就需要加入这个Content-Type
3:Content-Type:multipart/form-data 在SpringBoot中可以通过MulTipartFile数组接收多个文件,一些其它的参数也可以直接写到函数的参数中,前端一般用于文件的传输,这种形式的服务端的接收不太一样,一般不会解析到post请求中,一般需要读取body流的方式获取。
二、header
request header 和response header
request header 客户端告诉服务端关于自己的基本信息
例如,是否压缩(Accept-Encoding:gzip, deflate, sdch)这个就是告诉服务端,我支持这些种压缩,你返回的时候,你可以选择一种对数据压缩,我可以解开。
有是否缓存,接受的语言,User-Agent,referer等
response header 就是服务端给客户端的信息