zoukankan      html  css  js  c++  java
  • Http协议中的媒体类型

    介绍

    Web服务器会为所有HTTP对象数据附加一个MIME类型。当Web浏览器从服务器中取回一个对象时,会去查看相关的MIME类型,看看它是否知道应该如何处理这个对象。大多数浏览器都可以处理数百种常见的对象类型:显示图片文件、解析并格式化HTML文件、通过计算机声卡播放音频文件,或者运行外部插件软件来处理特殊格式的数据。
    与数据内容一同回送的MIME类型
    图1-1 与数据内容一同回送的MIME类型

    案例

    下面是通过curl命令向服务器请求excel文档的过程,服务器返回的对象类型是 application/x-msdownload

    [cdh140 ~]$ curl -v  http://12.32.7.100:8008/monitor/download
    * About to connect() to 12.32.7.100 port 8008 (#0)
    *   Trying 12.32.7.100...
    * Connected to 12.32.7.100 (10.22.5.140) port 8008 (#0)
    > GET /monitor/download HTTP/1.1
    > User-Agent: curl/7.29.0
    > Host: 12.32.7.100:8008
    > Accept: */*
    > 
    < HTTP/1.1 200 
    < Content-Disposition: attachment;filename=????.xlsx
    < Content-Type: application/x-msdownload
    < Content-Length: 5120
    < Date: Thu, 06 Aug 2020 01:30:54 GMT
    

    常见MIME类型

    主类型

    类型 描述
    application 应用程序特有的格式
    audio 音频格式
    chemical 化学数据集
    image 图片格式
    message 报文格式
    model 三维模型格式
    multipart 多部分对象集合
    text 文本格式
    video 视频电影格式

    子类型

    MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。

    拓展名 文档类型 MIME类型
    .htm .html HyperText Markup Language (HTML) text/html
    .txt Text, (generally ASCII or ISO 8859-n) text/plain
    .json JSON format application/json
    .png Portable Network Graphics image/png
    .jpeg .jpg JPEG images image/jpeg
    .xls Microsoft Excel application/vnd.ms-excel
    .xlsx Microsoft Excel (OpenXML) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    .pdf Adobe Portable Document Format (PDF) application/pdf
    .zip ZIP archive application/zip

    更多的MIME类型参考火狐浏览器官方文档:

    火狐浏览器支持的MIME列表

    用Java发送HTTP请求传输Excel文件

    /**
         * 下载Excel报告
         *
         * @param request
         * @param response
         * @throws IOException
         */
        public void downloadFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
            InputStream is = new FileInputStream(FileConfig.FILE_PATH + ".xlsx");
            HSSFWorkbook workbook = new HSSFWorkbook(is);
            OutputStream out = response.getOutputStream();
            String fileName = FileConfig.FILE_PATH;// 文件名
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileName + ".xlsx").getBytes(), "UTF-8"));
            workbook.write(out);
            out.close();
            response.getOutputStream().flush();
            response.getOutputStream().close();
        }
    
  • 相关阅读:
    [BinaryTree] AVL树、红黑树、B/B+树和Trie树的比较
    [C/C++] 堆和栈的区别
    HBuilde H5开发,关于JSON的Storage存储
    你是怎么调试 JavaScript 程序
    plus.webview.create mui.openWindow区别是什么呢
    H5本地存储详细使用教程(localStorage + JSON数据存储应用框架)
    [工具教程] HBuilder调试夜神安卓模拟器方法(该方法真实有效)
    HBuilder使用夜神模拟器调试Android应用
    Android如何使用API
    Linux下安装方法总结(源码安装)
  • 原文地址:https://www.cnblogs.com/2sheep2simple/p/13444521.html
Copyright © 2011-2022 走看看