get和post关于请求头中的Content-Type理解

1.get请求

GET 请求不存在请求实体部分,键值对参数放置在 URL 尾部,浏览器把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串追加到url后面,用?分割,加载这个新的url。因此get请求的请求头不需要设置 Content-Type 字段,设置了也不会去使用。

2. POST 请求

HTTP协议约定POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式(不是指字符编码),由开发者自行决定。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。因此POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。主要有四种方式:application/x-www-form-urlencoded、multipart/form-data、raw。

(1)application/x-www-form-urlencoded
最常见的 POST 提交数据的方式了。浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。
此方式的编码方式:首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。

(2)multipart/form-data
使用表单上传文件时,必须让<form> 表单的 enctype 等于 multipart/form-data。 Content-Type 里指明了数据是以 multipart/form-data 来编码,上面提到的这两种 POST 数据的方式,都是浏览器原生支持的,而且现阶段标准中原生\ 表单也只支持这两种方式(通过 <form> 元素的 enctype 属性指定,默认为 application/x-www-form-urlencoded。其实 enctype 还支持 text/plain,不过用得非常少)。

(3)raw方式

raw的编码方式主要application/json、text/xml等
在这里插入图片描述

application/json
使用application/json 这个 Content-Type 作为响应头,用来告诉服务端消息主体是序列化后的 JSON 字符串。这种方案,可以方便的提交复杂的结构化数据,特别适合 RESTful 的接口。

text/xml
使用 text/xml 这个 Content-Type 作为响应头

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值