You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何更大的Base64文件下载耗时比Multipart格式更短?

Base64与Multipart在JSON API中的传输性能对比测试

研究背景与测试方案

近期针对Base64编码与其他传输方式在JSON API中的应用可行性展开研究,考虑到Base64会带来33-37%的体积开销,搭建Flask服务器开展对比测试:上传100MB JPG图片分别采用Base64与multipart方式,同时实现两种方式的下载展示以全面对比性能。

测试核心代码

Flask服务器中实现两种传输方式的响应路由代码如下:

@app.route('/image-multipart/<filename>')
def serve_multipart(filename):
    return send_from_directory(UPLOAD_FOLDER, filename)

@app.route('/image-base64/<filename>')
def serve_base64(filename):
    path = os.path.join(UPLOAD_FOLDER, filename)
    if not os.path.exists(path):
        return jsonify(error='Not found'), 404

    ext = filename.rsplit('.', 1)[1]
    with open(path, 'rb') as f:
        encoded = base64.b64encode(f.read()).decode('utf-8')
    data_uri = f"data:image/{ext};base64,{encoded}"
    return jsonify(image=data_uri)

测试结果与分析

多次测试后得到以下结论:

  • 体积差异:Base64编码后的文件体积约137MB(140000 kB),远大于multipart格式的约100MB(105229 kB)
  • 浏览器下载阶段表现:无论使用何种浏览器,multipart的Content Download(蓝色进度条)耗时始终更长,经分析该耗时差异源于浏览器Queuing阶段的磁盘缓存空间分配,差值约600ms
  • 服务器与上传性能:经优化后,服务器响应时间因磁盘资源加载延迟升至32ms;multipart上传的Request sent与Waiting for response耗时均减半(从450ms、450ms降至200ms、160ms),整体multipart上传性能更优

内容的提问来源于stack exchange,提问作者tfn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:12:41