当前位置:网站首页>How to submit data through post
How to submit data through post
2022-07-06 17:38:00 【Wzzzzzzx】
When it comes to uploading data , We will naturally say Json/XML, But these are data formats . But the way of data uploading has been ignored by me all the time . The current understanding is , Four common schemes are commonly used to encode local data , adopt Content-Type To specify the data upload method , At the same time through Content-Length To specify the data length .
application/x-www-form-urlencoded
This should be the most common way to submit . In native forms From, If not set enctype attribute , This scheme will be adopted by default to upload data . Its HTTP The requested information is as follows :
POST http://www.example.com HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=utf-8
titile=%E6%B5%8B%E8%AF%95&body=%E6%B5%8B%E8%AF%95
It can be seen that ,Body Part of the data goes through URL After transcoding , With key1=val1&key2=val2 In the form of . In many cases , This is all Post Default submission method , But because it uses three characters to represent a Non-ASCII character , So the efficiency is relatively low .
multipart/form-data
Form enctype Attribute currently has two attribute values , One default is application/x-www-form-urlencoded, The other way is multipart/form-data 了 . This sending method is designed to support sending binary data to the server . Its HTTP The requested information is as follows :
POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data; boundary=aHR0cDovL3d3dy5leGFtcGxlLmNvbQ
--aHR0cDovL3d3dy5leGFtcGxlLmNvbQ
Content-Disposition: form-data; name="city"
Test
--aHR0cDovL3d3dy5leGFtcGxlLmNvbQ
Content-Disposition: form-data; name="file"; filename="test.png"
Content-Type: image/png
Content-Transfer-Encoding: binary
PNG ... content of test.png ...
--aHR0cDovL3d3dy5leGFtcGxlLmNvbQ--
As you can see from the above example , The format of this sending method includes multiple Part, Every Part Use randomly generated --boundary To segment , The last line uses --boundary-- ending . Every Part Must contain a Content-Disposition Field , This field contains a type and name Parameters of , If there are files uploaded , We need another one filename Parameters of , among type The value is form-data. Here you can also see the sending pictures Part It also uses Content-Type, If it can be the type of binary file when sending , Then the corresponding type value will be filled , If you can't recognize it , Will adopt application/octet-stream As type value , If multiple documents are summarized into one form item , Will use multipart/mixed As attribute value . At the same time , If Part The content of is the same as the default encoding In a different way , Will have a Content-Transfer-Encoding Property to specify the Part Coding method of .
application/json and text/xml
These two methods can be seen from the name of its transmission content , Not much .
Reference resources
https://imququ.com/post/four-ways-to-post-data-in-http.html
https://www.jianshu.com/p/29e38bcc8a1d
边栏推荐
- Interpretation of Flink source code (II): Interpretation of jobgraph source code
- The problem of "syntax error" when uipath executes insert statement is solved
- 连接局域网MySql
- Essai de pénétration du Code à distance - essai du module b
- JUnit unit test
- yarn : 无法加载文件 D:\ProgramFiles\nodejs\yarn.ps1,因为在此系统上禁止运行脚本
- Detailed explanation of data types of MySQL columns
- [VNCTF 2022]ezmath wp
- Xin'an Second Edition: Chapter 26 big data security demand analysis and security protection engineering learning notes
- Xin'an Second Edition; Chapter 11 learning notes on the principle and application of network physical isolation technology
猜你喜欢

pip install pyodbc : ERROR: Command errored out with exit status 1

全网最全tcpdump和Wireshark抓包实践

Flink analysis (I): basic concept analysis

【MySQL入门】第四话 · 和kiko一起探索MySQL中的运算符

yarn : 无法加载文件 D:\ProgramFiles\nodejs\yarn.ps1,因为在此系统上禁止运行脚本

Automatic operation and maintenance sharp weapon ansible Foundation

06 products and promotion developed by individuals - code statistical tools

学 SQL 必须了解的 10 个高级概念

05 personal R & D products and promotion - data synchronization tool

Interpretation of Flink source code (II): Interpretation of jobgraph source code
随机推荐
DataGridView scroll bar positioning in C WinForm
mysql的列的数据类型详解
信息与网络安全期末复习(完整版)
JVM garbage collector part 1
Shawshank's sense of redemption
Deploy flask project based on LNMP
Automatic operation and maintenance sharp weapon ansible Playbook
【逆向】脱壳后修复IAT并关闭ASLR
JVM 垃圾回收器之Garbage First
Pyspark operator processing spatial data full parsing (4): let's talk about spatial operations first
PySpark算子处理空间数据全解析(5): 如何在PySpark里面使用空间运算接口
[ASM] introduction and use of bytecode operation classwriter class
C#版Selenium操作Chrome全屏模式显示(F11)
信息与网络安全期末复习(基于老师给的重点)
Wu Jun trilogy insight (IV) everyone's wisdom
应用服务配置器(定时,数据库备份,文件备份,异地备份)
List set data removal (list.sublist.clear)
复盘网鼎杯Re-Signal Writeup
mysql的合计/统计函数
yarn : 无法加载文件 D:\ProgramFiles\nodejs\yarn.ps1,因为在此系统上禁止运行脚本