1.是什么?
是Http的实体首部字段,用于说明请求或返回的消息主体是用何种方式编码,在request header和response header里都存在。服务端根据请求头中的Content-Type字段来获取消息主体的编码方式,进而进行解析数据。有时候会需要请求时来手动设置,不过大部分情况下浏览器会根据Body中的数据来自发的设置相应的请求头。
application/x-www-form-urlencoded
原生Form表单,如果不设置 enctype 属性,默认为application/x-www-form-urlencoded 方式提交数据。提交的表单数据会转换为键值对并按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码,所以大型文件的时候,使用这种编码就显得 效率低下
multipart/form-data
实例化一个new FormData()类型的对象来存储这些数据,然后通过ajax或fetch来进行http请求。
raw(application/json)
用来告诉服务端消息主体是序列化后的 JSON 字符串,其中一个好处就是JSON 格式支持比键值对复杂得多的结构化数据
binary (application/octet-stream)
在Chrome浏览器的Postman工具中,还可以看到”binary“这一类型,指的就是一些二进制文件类型。如application/pdf,指定了特定二进制文件的MIME类型。对于application/octet-stream,由于没有键值,所以,一次只能上传一个文件,只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组)。