当前位置:网站首页 > 技术博客 > 正文

http上传文件大小限制



做爬虫业务一段时间了,经常用到GET, POST方法请求数据。GET请求最没问题,而POST中常用的 ,也比较容易。自以为对 协议理解透彻。然后想到HTTP文件上传的原理,却还不懂,突然想搞明白,故网上查了资料。其中涉及HTTP的RFC1867协议,记录如下:

  • : POST数据为 格式
  • : POST数据格式为
  • : POST数据包含: 和 (纯文本无法正确显示)

格式的POST的数据如下所示:

  1. 不带上传文件的POST请求:
 
  
  1. 上传一个文件(测试站点:改图宝)
 
  

最初由 《RFC 1867: Form-based File Upload in HTML》[1]文档提出。

文档中也写了为什么要新增类型,而不使用旧有的application/x-www-form-urlencoded:因为此类型不适合用于传输大型二进制数据或包含非ASCII字符的数据。平常我们使用这个类型都是把表单数据使用url编码后传送给后端,二进制文件当然没办法一起编码进去了。所以multipart/form-data就诞生了

摘自 《RFC 1867: Form-based File Upload in HTML》[2] 6.Example

 
  
  • 请求数据字段参数界定符: +. 如boundary=AaB03x,则界定符为
  • 请求数据结束界定符: ++. 如boundary=AaB03x,则界定符为
  • 字段参数界定符单独占一行,用来把每个字段内容分割开来。

类型的POST请求体中,包含多个字段参数,每个字段内容用 + 隔开,上传文件的信息内容,就是一个字段参数。具体内容如下所示:

 
  
  1. : 上传文件的字段参数名(name)
  2. : 上传文件的名称(finename)
  3. : 文件的内容类型
  4. 文件具体内容部分: 纯文本无法正常显示

以上4个信息包含在一个form-data字段里。其中,文件内容类型和文件具体内容之间,要再包含一个

 
  

客户端上传:

 
  

服务端接收:

POST请求头内容:

 
  

Golang服务端接收上传文件:

 
  

RFC(Request For Comments)-意即“请求评议”,是一系列以编号排定的文件,包含了关于Internet的几乎所有重要的文字资料,基本的互联网通信协议都有在RFC文件内详细说明。目前RFC文件由Internet Society(ISOC)赞助发行。如果你想成为网络方面的专家,那么RFC无疑是最重要也是最经常需要用到的资料之一,所以RFC享有网络知识圣经之美誉。

HTTP 1.1 版本规范由 定义。


一文了解文件上传全过程(1.8w字深度解析,进阶必备)https://developer.aliyun.com/article/
golang系列——实战http上传文件 https://zhuanlan.zhihu.com/p/
HTTP与RFC https://www.cnblogs.com/dashuaiB/p/10468624.html
HTTP协议,RFC阅读笔记 http://blog.chinaunix.net/uid-9793706-id-264306.html


版权声明


相关文章:

  • linux执行js脚本2025-09-19 20:30:05
  • 空白符号啥意思2025-09-19 20:30:05
  • 01背包问题动态规划算法代码2025-09-19 20:30:05
  • linux ll详解2025-09-19 20:30:05
  • 玄幻:开局获得机缘抢夺系统2025-09-19 20:30:05
  • java线程池的工作流程2025-09-19 20:30:05
  • iic 通信2025-09-19 20:30:05
  • 无锁编程有哪些2025-09-19 20:30:05
  • java虚拟机使用教程2025-09-19 20:30:05
  • 86版王码五笔输入法字根表2025-09-19 20:30:05