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的作用

Http请求中Accept、Content-Type讲解以及在Spring MVC中的应用

Http协议请求头响应头响应码

网络编程之一文读懂HTTP协议的历史演变和设计思路

HTTP报文头Accept和Content-Type总结

http头部字段accept和content