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中。
根据以上的描述,可以总结:
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