技术点探索
场景:
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进行压缩,而且服务器能成功解压。