http协议_数据类型(Content-Type,Accept)
程序员文章站
2024-03-14 14:55:28
...
背景:
在最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档。 那么问题来了! 如何解决多媒体传输,图片、视频? http协议通过定义不同的类型来对应不同的传输。 Accept: 客户端希望接受的数据类型。 Content-Type 客户端提交的数据类型, 使用的是 “主类型/子类型; 额外参数”
主类型(type): 主类型不同,编码解码方式不同,前后台类型不一致解码就会错误
1. text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的; 默认是text/plain; 2. multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据; 默认是multipart/mixed; 3. application:用于传输应用程序数据或者二进制数据; 默认是application/octet-stream; multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式 4. message:用于包装一个E-mail消息; 5. image:用于传输静态图片数据; 6. audio:用于传输音频或者音声数据; 7. video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。 8. drawing:--未整理 9. java:--未整理 10 Model:--未整理
子类型:用于指定"主类型"的详细数据形式。 其中以x-开头表示该类别尚未标准化 。当客户端不能确定“子类型”时,会根据“主类型”来获取默认的子类型。
例如 application/json 和 application/xml ,都是通过二进制传输不同格式的字符串,仅仅起到标识作用,告诉后台拿到参数应该转成什么数据格式而已
application/xhtml+xml :XHTML格式 application/xml : XML数据格式 application/atom+xml :Atom XML聚合格式 application/json : JSON数据格式 application/pdf :pdf格式 application/msword : Word文档格式 application/octet-stream : 二进制流数据(如常见的文件下载) application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
额外参数(parameter): 用于指定请求/响应内容的字符编码格式。例如text/html;charset=utf-8
上一篇: java Base64 加密工具类
下一篇: DES代码讲解