当前位置:网站首页>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
边栏推荐
- 03 products and promotion developed by individuals - plan service configurator v3.0
- Akamai 反混淆篇
- How uipath determines that an object is null
- Vscode replaces commas, or specific characters with newlines
- Akamai anti confusion
- Deploy flask project based on LNMP
- JVM garbage collector part 1
- [CISCN 2021 华南赛区]rsa Writeup
- Flexible report v1.0 (simple version)
- Garbage first of JVM garbage collector
猜你喜欢

Grafana 9 正式发布,更易用,更酷炫了!

Flink parsing (III): memory management

CTF reverse entry question - dice

Program counter of JVM runtime data area

BearPi-HM_ Nano development board "flower protector" case

1. Introduction to JVM

Start job: operation returned an invalid status code 'badrequst' or 'forbidden‘

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

案例:检查空字段【注解+反射+自定义异常】

JVM 垃圾回收器之Serial SerialOld ParNew
随机推荐
Flink parsing (IV): recovery mechanism
【MySQL入门】第一话 · 初入“数据库”大陆
Xin'an Second Edition: Chapter 26 big data security demand analysis and security protection engineering learning notes
JUnit unit test
February database ranking: how long can Oracle remain the first?
How does wechat prevent withdrawal come true?
C# NanoFramework 点灯和按键 之 ESP32
1. Introduction to JVM
Redis快速入门
Redis installation on centos7
[elastic] elastic lacks xpack and cannot create template unknown setting index lifecycle. name index. lifecycle. rollover_ alias
复盘网鼎杯Re-Signal Writeup
DataGridView scroll bar positioning in C WinForm
Automatic operation and maintenance sharp weapon ansible Playbook
远程代码执行渗透测试——B模块测试
Automatic operation and maintenance sharp weapon ansible Foundation
自动化运维利器-Ansible-Playbook
mysql高級(索引,視圖,存儲過程,函數,修改密碼)
Shawshank's sense of redemption
分布式(一致性协议)之领导人选举( DotNext.Net.Cluster 实现Raft 选举 )