@lupnfer
2017-03-28T12:37:07.000000Z
字数 1432
阅读 845
Code
我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:
<method> <request-url> <version>
<headers>
<entity-body>
</entity-body>
</headers></version></request-url></method>
协议规定 POST 提交的数据必须放在消息主体(entity-body)中
Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。
Accept代表发送端(客户端)希望接受的数据类型。
Content-Type: [type]/[subtype]; parameter
MIME根据type制定了默认的subtype,当客户端不能确定消息的subtype的情况下,消息被看作默认的subtype进行处理。Text默认是text/plain,Application默认是application/octet-stream而Multipart默认情况下被看作multipart/mixed。对于IE6浏览器来说,如果Content-Type中的类型和实际的消息体类型不一致,那么它会根据内容中的类型来分析实际应该是什么类型,对于JPG、GIF等常用图片格式都可以正确的识别出来,而不管Content-Type中写的是什么。
如果Content-Type中指定的是浏览器可以直接打开的类型,那么浏览器就会直接打开其内容显示出来,如果是被关联到其它应用程序的类型,这时就要查找注册表中关于这种类型的注册情况,如果是允许直接打开而不需要询问的,就会直接调出这个关联的应用程序来打开这个文件,但如果是不允许直接打开的,就会询问是否打开。对于没有关联到任何应用程序的类型,IE浏览器不知道它该如何打开,此时IE6就会把它当成XML来尝试打开。
POST http://www.example.com HTTP/1.1
Content-Type: application/json;charset=utf-8
{
"title": "test",
"sub": [
1,
2,
3
]
}