http协议Content-Type的不同而数据方式不同

http协议补充

http协议消息头中Content-Type方式位application/x-www-form-urlencoded , multipart/form-data , text/plain的区别。

application/x-www-form-urlencoded:数据被编码为名称/值对。

multipart/form-data:数据编码为一条消息,foram表单的控件对应消息中的一个部分。

text/plain:数据纯文本形式编码,其中不含任何控件和格式字符。

get方式和post方式的区别:

get方式没有http-body。参数在url中key=value形式传递。对值进行URLencode编码。

post方式和get方式对立。包含http-body。把数据放到http-body中。

根据以上的描述,可以总结:

扫描二维码关注公众号,回复: 1086930 查看本文章

get方式的请求:Content-Type只能为application/x-www-form-urlencoded。没有别的选择。

post方式的请求:Content-Type可以选择application/x-www-form-urlencoded , multipart/form-data , text/plain三种方式。

(1).application/x-www-form-urlencoded

在http-body中,key=value的形式放数据。例如:

传递name=jack,age=25的参数。http-body的内容如下:

name=%E6%9D%8E%E6%98%8E&age=25

(2).multipart/form-data

在http-body中,消息形式放数据。

传递name=jack,age=25的参数。http-body的内容如下:

--pmxcjJfAuM0JsKlaR24WOPpTysBpYSh2

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

Content-Type: text/plain; charset=US-ASCII

Content-Transfer-Encoding: 8bit

jack

--pmxcjJfAuM0JsKlaR24WOPpTysBpYSh2

Content-Disposition: form-data; name="age"

Content-Type: text/plain; charset=US-ASCII

Content-Transfer-Encoding: 8bit

25

--pmxcjJfAuM0JsKlaR24WOPpTysBpYSh2--

(3).text/plain:

在http-body中,纯文本形式放数据。

例如放文本{"name":"jack",age:21}

总结:常用的http协议隐藏着很多奥秘。只有开启自己的好奇心,才能探究秘密。细节隐藏着魔鬼。

参考:http://www.cnblogs.com/52fhy/p/5436673.html

猜你喜欢

转载自nicegege.iteye.com/blog/2389344