• 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();
        }
    
  • 相关阅读:
    记一次线上网络问题排查
    记服务器上session设置引起的OutofMemory
    由DateFormat引起的线程安全问题
    十二周总结
    团队开发冲刺第十天
    团队开发冲刺第九天
    团队开发冲刺第八天
    团队开发冲刺第七天
    十二周总结
    团队开发冲刺第六天
  • 原文地址:https://www.cnblogs.com/2sheep2simple/p/13444521.html
Copyright © 2020-2023  润新知