Http中Content-Type与Accept的区别


Content-Type

Content-Type(内容类型),一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。这个就是经常看到一些网页打开之后会下载一个文件或者是一张图片的原因。

Content-Type代表发送端(客户端/服务器)发送的实体数据的数据类型。

语法格式

Content-Type: text/html; charset=utf-8
Content-Type: multipart/form-data; boundary=something

Accept

Accept用来指定什么媒体类型的响应是可接受的,即告诉服务器我需要什么媒体类型的数据,此时服务器应该根据Accept请求头生成指定媒体类型的数据。

Accept表示客户端(浏览器)支持的类型,也是希望服务器响应发送回来的数据类型。

语法格式

Accept: text/html  # 一个精确的MIME类型
Accept: image/*  # 匹配如image/png、image/gif等的任何图像类型
Accept: */*  # 任何MIME类型
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8  # q是因子权重

区别

  • Content-Type属于实体头Response Header,Accept属于请求头Request Header

  • Accept代表客户端希望接收到的类型,如Accept: application/json;charset=UTF-8,代表接收JSON数据格式的数据;

    Content-Type代表服务器发送实体数据的类型,如Content-Type: application/xml,代表发送XML数据格式的数据。

  • 两者可以结合使用,如:

    Content-Type: application/json;charset=UTF-8;
    Accept: text/html;
    

    代表客户端发送请求的时候,发送的数据的数据格式是json,且希望服务端返回的数据类型为html

常见的MIME类型

类型 说明
text/html HTML格式
text/plain 纯文本格式
text/xml XML格式
image/jpeg jpg图片格式
image/png png图片格式
image/gif gif图片格式
application/xhtml+xml XHTML格式
application/xml XML数据格式
application/json JSON数据格式
application/pdf pdf格式
application/octet-stream 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded 表单默认的提交数据的格式
multipart/form-data 表单中上传文件