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();
        }
    
  • 相关阅读:
    在ubuntu下关闭笔记本触摸板
    (转载)实用小命令 windows下查看端口占用情况
    (转载)JBoss 4.2.3下部署EJB 3.0碰到的local和remote问题
    Windows下通过xmanager远程桌面控制Linux(转)
    SQL Server 事务日志的问题
    回归
    用友软件工程IT应用研究院
    关于Oracle数据库的死锁(转书摘)
    关于企业级Web2.0的一点想法
    关注Java的开源项目(中文版)
  • 原文地址:https://www.cnblogs.com/2sheep2simple/p/13444521.html
Copyright © 2011-2022 走看看