mime

http://www.javashuo.com/article/p-epsgdukd-kc.htmlhtml

它是一个互联网标准,扩展了电子邮件标准,使其可以支持:web

非ASCII字符文本;非文本格式附件(二进制、声音、图像等);由多部分(multiple parts)组成的消息体;包含非ASCII字符的头信息(Header information)。浏览器

 

 

每个 URL 都表明着一个资源对象,而当咱们请求一个网页的时候,看似只请求了一个 URI(统一资源标识符),实际上这个网页可能包含多个 URI,例如图片资源的 URI 和视频资源的 URI 等。此时有些浏览器为了加快访问速度,可能会同时开多个线程去请求 URI。也就是说其实每个 URI 都发送了一个请求报文。服务器

  URI 包括 URL(统一资源定位符)和 URN(统一资源名)。但因为 URN 多还在实验阶段,实验的并非太普遍,因此如今几乎全部的 URI 都是 URL。app

  而当咱们的浏览器要显示或处理这些资源的时候,咱们并不知道其响应的数据是什么类型的,为了区分这些资源类型,就须要用到 MIME 了。HTTP 会为每个经过 web 传输的对象添加上 MIME 类型的数据格式标签。浏览器在读取到对应的信息后,会调用相应的程序去处理它,任何获得咱们想要的结果。ide

  MIME 类型在请求报文和响应报文中均有体现。例如,当我请求 http://www.cnblogs.com/scolia 这个 URL 时,工具

  个人请求报文头中有:ui

  Accept 表示我当前的浏览器但愿接受什么类型的文件,这是请求首部,当服务器没有客户端想要的资源的媒体类型时,会返回406 Not Acceptable 响应。固然使用了 */* 表示愿意接受任意类型的资源,因此应不会看到这个响应。另外,这里的 q 表示权重,权重在 0-1 之间,能够理解成客户端在这些给出的类型中,想优先接受什么类型,能够服务器就能够根据客户端的须要返回相应的资源。线程

  若是没有,则默认为 1 。这里前面几个类型都没有标明,则默认都是 1 ,表示优先这些类型,后面的 0.9 表示前面都没有就用这个,最后的 0.8 表示若是都没有,那么任意的类型都行。orm

  而在响应报文头中有:

  这里很而且的表示我响应的是 text/html 类型的文件,浏览器在检测到 MIME 类型后,就会相应的去解析它。

  可是,我说过看似请求的一个 URL 实际上包含了多个 URL ,若是你用工具查看,我这里用的是火狐的控制台,能够看到我此次的请求有:

  很是多个,咱们看一下背景图片的 MIME 类型是什么:

  


  MIME 类型有很是多种,通常常见的有:

  text/html:HTML 格式的文本文档

  text/plain:普通的 ASCII 文本文档

  image/jpeg:JPEG格式的图片

  image/gif:GIF格式的图片

  video/quicktime:Apple 的 QuickTime 电影

  application/vnd.ms-powerpoint:微软的powerpoint文件

  ……

相关文章
相关标签/搜索