Http中的post方法与content-length

本文详细解释了POST请求中Content-Length字段的计算方法,并重点对比了不同enctype属性(如application/x-www-form-urlencoded与multipart/form-data)对于上传内容大小的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

post content-length 0

用post请求时content-length 的计算结果根据form的enctype不一样而不一样。

post请求时,大家都知道有三种编码方式。

HTML
标签的 enctype 属性

描述
application/x-www-form-urlencoded 在发送前编码所有字符(默认)
multipart/form-data 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain 空格转换为 “+” 加号,但不对特殊字符编码。
其中multipart/form-data编码则对要上传到服务器的内容不编码,源文件的内容原封不动的上传到服务器。
所以提交到服务器的content-length也是跟文件大小差不多(要加上http的header部分)。
但是application/x-www-form-urlencoded ,text/plain 则需要对post的内容进行编码。
如:a=> %97,在这里注意,我们提交的是一个字节,但是实际上是上传了三个字节。
所以在服务器端控制post大小时要考虑好接收什么样的编码,假如你要接收10K大小的文件,
则可能需要设置为30K左右。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值