欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

 

 

 

相关标签: 技术实现