zoukankan      html  css  js  c++  java
  • 关于在客户端上传大批量数据时的相应策略

    技术点探索
    场景:
    1、在TEACH平台上传课件前,需要将组成的资源文件MD5值算出,然后发送给服务器,让服务器检查哪些需要新上传,哪些需要复用?
    一般有文件个数按400个计。每条记录需要包括:文件MD5(32个字符) 32*400=12K左右

    2、在OFFICE插件上传试题功能中,需要将一张OFFICE试卷分解成若干个PNG和DOCX,一般以40道题为例 ,大约800个文件左右。
    每个文件需要申请一个上传的签名信息,就是要进行800次HTTP请求连接,这就是最近上传试题导致拒绝服务的原因。


    黄海的思路:
    1、由多次发起请求,合并为一次请求。
    2、一次请求的话,请求体变大,对于服务器珍贵的带宽资源,将十分致命,因为以前的大文件上传下载都是分解到OSS了,现在还要面对这个问题。
    3、办法:使用HTTP的GZIP,在请求前对请求BODY进行GZIP压缩,在服务器获取到请求体后,根据请求的GZIP标签,动态解压,获取信息,返回时使用NGINX的GZIP
    压缩进行处理返回体。


    参考办法如下:

    http压缩 Content-Encoding: gzip  
    http://liuviphui.blog.163.com/blog/static/20227308420141843933379/

    Gzip Encoding an HTTP POST Request Body
    http://www.cymbeline.ch/2014/03/16/gzip-encoding-an-http-post-request-body/

    ============================================================================
    web中gzip,deflate的压缩与解压
    http://crazysky.iteye.com/blog/775333

    后期需要转到LUA版:
    Nginx与Gzip请求
    http://huoding.com/2013/09/02/283

    ============================================================================

    需要联合测试FLEX与C#中,如何在REQUEST时使用GZIP进行压缩,而且服务器能成功解压。

  • 相关阅读:
    LeetCode 206. Reverse Linked List倒置链表 C++
    spring security 5 There is no PasswordEncoder mapped for the id "null" 错误
    jdk 1.8下 java ArrayList 添加元素解析
    qt (5.60/5.70) 编译 QOCI 驱动
    ps快捷键
    使用jquery中height()方法获取各种高度
    事件委托live,delegate,on区别
    ajax获取数据后怎么去渲染到页面?
    JavaScript:document.execCommand()的用法
    兼容IE FF 获取鼠标位置
  • 原文地址:https://www.cnblogs.com/littlehb/p/4176423.html
Copyright © 2011-2022 走看看