资讯专栏INFORMATION COLUMN

浅谈http协议(四):Content-Type字段及媒体格式

mengbo / 3329人阅读

摘要:也可以用在请求头信息中,用来指定报文主体的类型。比如等,和操作系统的文件拓展名有共同的用途,就是用来标注信息的格式,但应用场景完全不同,一个是操作系统中标注文件的,一个是邮件和协议中用来标注网络数据的。最后附上和的相关字段完

当浏览器发起http请求时,有一个关于媒体格式的请求头字段,浏览器会根据请求链接的内容帮我们自动加上,那就是Accept字段,它的作用告诉WEB服务器自己接受的MIME类型,属于请求头,而服务器接收到该信息后,使用Content-Type 应答头通知客户端它选择的MIME类型,属于实体头,服务端不返回Content-Type字段时浏览器会按Accept字段里的属性顺序对返回的数据进行解析。Content-Type也可以用在请求头信息中,用来指定报文主体的类型。

注:MIME的全名叫多用途互联网邮件扩展(Multipurpose Internet Mail
Extensions),MIME的常见形式是一个主类型加一个子类型,用斜线分隔。比如text/html、application/javascript、image/png等,MIME和操作系统的文件拓展名有共同的用途,就是用来标注信息的格式,但应用场景完全不同,一个是操作系统中标注文件的,一个是邮件和HTTP协议中用来标注网络数据的。
常见的MIME类型:
  超文本标记语言文本 .html => text/html
  普通文本 .txt => text/plain
  GIF图形 .gif =>image/gif
  JPEG图形 .jpeg,.jpg => image/jpeg
  au声音文件 .au => audio/basic
  MPEG文件 .mpg,.mpeg => video/mpeg
  AVI文件 .avi => video/x-msvideo
  GZIP文件 .gz => application/x-gzip

语法: / ; parameter

accept示例:
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, / ;q=0.8
注:多个属性用逗号隔开,默认从左往右匹配,q是权重因子,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其 “;” 之前的类型表示的内容,若没有指定 q 值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型

content-type示例(请求头):
一、Content-Type: application/x-www-form-urlencoded
一般是post请求才需要在请求头信息中加上content-type,显示此HTTP请求提交的内容类型,在最早的post请求中,表单数据向服务器提交时所采用的编码类型,默认的缺省值就是“application/x-www-form-urlencoded”,参数都是通过键值对方式传递。该方式对于文件上传有很多不便

body的内容如下:
Form Data:number=1&goodsId=1405140&skuId=1405140-68a3e5516d7a7dc21fbe0e7ee13bfc1c&innerSource=DETAIL

二、Content-Type:multipart/form-data
在1995年的时候,content-type扩充了multipart/form-data用以支持向服务器发送二进制数据,此种方式多用于二进制文件上传,表单数据都保存在http的主体部分(比如post的body),很多情况下都会有批量上传,所以各个表单项之间用boundary的值作为分割标志。

三、Content-Type: application/json
现在越来越多的应用使用application/json,用来告诉服务端消息主体是序列化的json字符串。

body的内容如下:
{"comboId":" ","goodsList":[{"goodsId":1372308,"skuId":"1372308-228f0bba1bd1b7241353429cebd7c88b","isHuanGou":0,"selected":1,"count":2,"cartGoodsType":0,"activitySchemeId":111873,"goodsActivityGiftListTemp":[]}]}

在Content-Type属性当中还可以指定提交内容的charset字符编码。一般不进行设置,它只是告诉web服务器post提交的数据采用的何种字符编码,一般在开发过程,是由前端工程与后端工程师会提前商量好使用什么字符编码格式来post提交的。所以这里设置的charset没有多大作用

content-type示例(响应头):

Content-Type对照表:http://tool.oschina.net/commons/

HTTP 中 Response 的 Content-Type 标明了 客户端(往往是指浏览器)该如何解析这次请求, 一般服务器会根据请求文件的扩展名自动填上匹配的 Content-Type 值,但这个值只是一个指导作用, 意思就是说如果你给一个 的 src 指向一个 Content-Type= text/css 的错误值, 会发现图片一样可以正确的被显示,只要图片正文对就行。现在浏览器可以解释的文件类型很多,除了常用的 HTML , 还有 pdf , word , 多媒体数据 等等.所以Content-Type 在response中还是非常重要的. 否则浏览器可能会不知道该怎么解释请求的内容。

最后附上accept和content-type的相关字段:

<完>

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/54204.html

相关文章

  • 浅谈http协议):Content-Type字段媒体格式

    摘要:也可以用在请求头信息中,用来指定报文主体的类型。比如等,和操作系统的文件拓展名有共同的用途,就是用来标注信息的格式,但应用场景完全不同,一个是操作系统中标注文件的,一个是邮件和协议中用来标注网络数据的。最后附上和的相关字段完 当浏览器发起http请求时,有一个关于媒体格式的请求头字段,浏览器会根据请求链接的内容帮我们自动加上,那就是Accept字段,它的作用告诉WEB服务器自己接受的M...

    用户83 评论0 收藏0
  • Http请求中的Content-Type

    摘要:协议采用了请求响应模型。报头分为通用报头,请求报头,响应报头和实体报头。格式支持比键值对复杂得多的结构化数据,这一点也很有用。例如下面这段代码最终发送的请求是这种方案,可以方便的提交复杂的结构化数据,特别适合的接口。 一 前言 ----现在搞前端的不学好http有关的知识已经不行啦~笔者也是后知后觉,在搞node的时候意识到网络方面的薄弱,开始学起http相关知识。这一篇是非常基础的讲...

    Betta 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<