HTTP协议的 Accept 和 Content-Type 请求头
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP协议的 Accept 和 Content-Type 请求头相关的知识,希望对你有一定的参考价值。
一、知识点
1、概述
Http报头分为通用报头,请求报头,响应报头和实体报头。
请求方的http报头结构:通用报头|请求报头|实体报头
响应方的http报头结构:通用报头|响应报头|实体报头
Accept属于请求头,描述客户端希望接收的 响应body 数据类型
Content-Type属于实体头,描述客户端发送的 body 数据类型
2、Accept代表发送端(客户端)希望接受的数据类型
比如:Accept:text/xml;
代表客户端希望接受的数据类型是xml类型
3、Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型
比如:Content-Type:text/html;
代表发送端发送的数据格式是html。
4、总结
二者合起来,
Accept:text/xml;
Content-Type:text/html
即代表希望接受的数据类型是xml格式,本次请求发送的数据的数据格式是html。
二、问题答疑
1、"Accept", "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*",一大段资源,在最后又加上了*/*,这是为什么?
我的理解: 客户端支持这些类型,并指定了希望得到类型的优先级,如果没有,依次表达意愿 !
2、服务端侧怎么实现的?
我的理解:
SpringMvc为例,提供了多种MessageConverter,用户也可以自己扩展实现
框架启动的时候,会装载能支持的各种MessageConverter
请求来的时候,根据上述设置依次查找本地是否有对应的MessageConverter,如果找到就用找到的MessageConverter返回对应的类型数据。
以上是关于HTTP协议的 Accept 和 Content-Type 请求头的主要内容,如果未能解决你的问题,请参考以下文章
HTTP协议的消息头:Content-Type和Accept的作用