首页 > 其他分享 >http请求头中application/x-www-form-urlencoded和multipart/form-data区别

http请求头中application/x-www-form-urlencoded和multipart/form-data区别

时间:2024-04-17 10:13:03浏览次数:19  
标签:www form Content application 头中 multipart data

application/x-www-form-urlencoded和multipart/form-data是两种不同的 Content-Type,它们在网络请求中(尤其是 POST 请求)用来指定表单数据的编码格式

application/x-www-form-urlencoded:
• 这是最常见的表单数据编码方式,也是 HTML 表单的默认编码类型。
• 所有表单字段名和值都会进行 URL 编码(即百分号编码),然后通过 "&" 符号连接起来形成一个长字符串。
• 它不适用于传输二进制数据,例如文件上传,因为所有数据都被转换成了 ASCII 文本格式。
• 数据量有限制,因为在 URL 中可能会遇到长度限制,并且不能很好地处理大数据或特殊字符。

报文格式:

POST /submit-form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 60

username=admin&password=secretpassword&message=Hello%20World&isAgreed=true

multipart/form-data:
• 这种编码方式主要用于需要上传文件的表单场景。
• 每个表单字段都在消息正文中作为一个单独的部分(part),每个部分有自己的“Content-Disposition”头,用于描述字段名和文件名(如果适用的话)。
• 不会对字段名和值进行 URL 编码,而是保持原始数据格式,特别适合传输二进制文件数据。
• 可以同时上传文本字段和文件,每一个部分之间用边界字符串分隔开来,便于服务器解析各个字段内容。
• 不受 URL 长度限制,能上传较大的数据块。

报文格式

POST /upload-form HTTP/1.1
Host: example.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Length: .jpg

------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="example.jpg"
Content-Type: image/jpeg

<binary data of the image file>

------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="description"

This is an example image.
------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

总结起来,在选择表单数据编码格式时,如果只是提交简单的键值对且不包含文件,一般使用application/x-www-form-urlencoded;而如果有文件上传或者其他复杂数据结构需要保持原样传输,则使用multipart/form-data

标签:www,form,Content,application,头中,multipart,data
From: https://www.cnblogs.com/zhenjingcool/p/18139892

相关文章

  • CC1TransformedMap链学习
    跟着看了白日梦组长的视频,记录一下调试学习过程CC1链学习TransformedMap链ObjectInputStream.readObject()AnnotationInvocationHandler.readObject()MapEntry.setValue()TransformedMap.checkSetValue()......
  • python3字符串格式化用format()好还是 % 表达式好
    左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取python编程资料在Python中,使用format()方法是更推荐的方式来进行字符串格式化,特别是在Python3中。虽然%表达式仍然可以在Python中使用,但已经不推荐使用了,新的项目中能不用就不用,谁知道哪......
  • winform车牌识别源码(纯算法)
    车牌识别,本是图像领域中,非常成熟的一个应用,也是目前无处不在的停车场自动收费设备的技术基础。前言本文将使用c#语言,winform框架开发一个车牌识别系统M=,不借助任何框架,纯算法。效果  使用工具VisualStudio2019思路打开要识别的车牌对车牌进行去雾操作接着进......
  • transformers、torch train demo
    通过pytorch训练模型的逻辑:importtorch.nnasnnimporttorchimportnumpy#fromtorch.utils.tensorboardimportSummaryWriterimporttimevocabList=["0","1","2","3","4","5","6","7"......
  • 防止form表单重复提交的几种方案
    form重复提交场景场景1:在网络延迟的情况下让用户有时间点击多次submit按钮导致表单重复提交。具体行为:在网络比较慢的情况下,用户连续快速的点击多次提交按钮。场景2:表单提交后用户点击【刷新】按钮导致表单重复提交。具体行为:用户点击了提交按钮,然后点击浏览器上的【刷新】按钮......
  • 界面组件DevExpress WinForms v23.2 - 数据展示、UI模板功能全新升级
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件日前正式发布了v23.2,此版......
  • 论文解读(Polynormer)《Polynormer: Polynomial-Expressive Graph Transformer in Linea
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]2024年4月14日17:13:41论文信息论文标题:Polynormer:Polynomial-ExpressiveGraphTransformerinLinearTime论文作者:论文来源:2024 aRxiv论文地址:download论文代码:download视屏讲解:click1-摘要图转换器(GTs)已经成为一种......
  • XAML UI 框架横向对比(Avalonia/Uno Platform/.NET MAUI)
    XAML框架横向对比多年来,基于XAML的UI框架有了很大的发展。下面的图表很好地证明了这个观点。XAMLUI框架的三大巨头:AvaloniaUI、UnoPlatform和.NETMAUI都支持跨平台的应用。事实上,除了AvaloniaUI,对跨平台XAML的需求是它们发展的主要动力。如果微软早一点介入,在几......
  • ModuleNotFoundError: No module named 'formatter'
    在学习韦东山Linux下载BSP章节时 走到第四步的时候出现ModuleNotFoundError:Nomodulenamed'formatter'的错误查了资料发现是第一步的问题,原因在于对于ubantu22.04来说formatter已在python3.4+标记成废弃接口,就算你按照网上教程添加这个模块也无法解决。解决方法是第一步......
  • Ant - Form 自定义组件 form.getFiledsValue 如何获取值
    import{FC,useState}from'react';importtype{SelectProps}from'antd';import{Select,Space,Flex,Input,Button}from'antd';/***扩展选择器组件,可以通过键盘enter输入一个Option*/constInputSelect:FC<{defaultOptio......