http中的Content-Type类型

这篇具有很好参考价值的文章主要介绍了http中的Content-Type类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

浏览器的Content-Type

最近在做web端下载的时候需要给前端返回一个二进制的流,需要在请求头中设置一个

writer.Header().Set("Content-Type", "application/octet-stream")

那么http中的Content-Type有具体有哪些呢?他们具体的使用场景又是怎样的呢?

1 分类

一、 MediaType类

MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息,确切的来说是客户端告知服务端,自己即将发送的请求消息携带的数据结构类型,好让服务端接收后以合适的方式处理。

  • 官网:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types

1.1 text/html:HTML格式

1.2 text/plain:纯文本格式

1.3 text/xml:XML格式

1.4 image/gif:gif图片格式

1.5 image/jpeg:jpg图片格式

1.6 image/png:png图片格式

二、 application类

2.1 application/xhtml+xml:XHTML格式

2.2 application/xml:xml数据格式

2.3 application/atom+xml:Atom XML聚合格式

2.4 application/json:JSON数据格式

2.5 application/pdf:pdf格式

2.6 application/msword:word文档格式

2.7 application/octet-stream:二进制流数据(常见于文件下载)

2.8 application/x-www-form-urlencoded:html中form表单提交

<form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

2.9 multipart/form-data:表单中需要进行文件上传时

multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

2.10 application/zip:压缩包

2 Content-Type作用(GET请求一般不用携带)

不过需要注意的是,一般get请求不需要设置Content-Type,只有post才有必要设置!
为什么get请求不需要设置Content-Type?

2.1概念

Content-Type作用是:为了告诉别人我携带了什么类型的数据

  • 对于request请求

get是不携带数据的,url中?后的参数不算做data
post是需要带参数的,也就是data参数,客户端告诉服务端,自己的数据类型

  • 对于response响应

反过来了,服务端告诉客户端,自己的数据类型,这样浏览器就知道是按text/html页面渲染,还是按照text/plain渲染

2.2 案例

我们简单写一个html页面,然后分别设置不同的Content-Type,观察结果

①设置为text/html

原文在返回时,在responseHeaders中设置Content-Type,其值为’text/html’:

response.writeHead(200, {'Content-Type': 'text/html'});    

访问效果是:
http中的Content-Type类型,计算网络,http,网络协议,网络,响应头,请求头,Content-Type
浏览器把文本当做html来渲染,那么会隐藏html标签,并按照css样式等渲染!

②设置为text/plain

现在我们把Content-Type改为text/plain试试:

response.writeHead(200, {'Content-Type': 'text/plain'});    

访问效果为:
http中的Content-Type类型,计算网络,http,网络协议,网络,响应头,请求头,Content-Type
注意红色标记的内容,本身是html标签,被当做普通文本显示出来了!因为服务端告诉浏览器数据是文本格式的,不是html格式的,因此浏览器就把标签当做普通文本对待了。

因此Content-Typ作用是告知别人我的数据是什么格式的,可以是客户端告知服务端,可以是服务端告知客户端。

在回到之前的问题,为什么get请求不需要设置Content-Type?
原因就是get时,不会携带狭义的数据,即data,那么自然就没必要告诉服务器自己的数据类型是什么了!当然了,如果强行给get请求设置Content-Type也不会出错,但是没有意义

拓展

1. Content-Type与Content-Disposition关系

  1. Content-Type实体头部用于指示资源的MIME类型,通过Content-Type标头告诉客户端实际返回的内容应该以什么方式显示response返回的数据
  2. Content-Disposition是MIME协议的扩展,指示回复的内容应该以何种方式显示
  • 以内联的形式:即:网页或者页面的一部分,这种方式就与Content-Type作用相同
  • 以附件形式:以附件形式下载并保存到本地
//在页面中展示(作为页面的一部分)
Content-Disposition: inline
//attachment意为消息体应该被下载到本地,大多数浏览器会呈现一个"保存为对话框"
Content-Disposition: attachment
//将response结果下载到本地,并且文件名为xxx.jpg
Content-Disposition: attachment; filename="xxx.jpg"

参考文章:https://blog.csdn.net/m0_45406092/article/details/114022550文章来源地址https://www.toymoban.com/news/detail-742274.html

到了这里,关于http中的Content-Type类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • content-type几种常见类型区别

    Content-Type叫做MIME(mediaType)类型,使用Content-Type来表示请求和响应中的媒体类型信息。如果是请求头,它用来告诉服务端如何处理请求的数据,如果是响应头,它用来告诉客户端(一般是浏览器)如何解析响应的数据。下面我们来介绍下常用的几种类型! 1.application/x-www-form

    2024年02月03日
    浏览(46)
  • Http Content-type 对照表

    文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .*( 二进制流,不知道下载文件类型) application/octet-stream .tif image/tiff .001 application/x-001 .301 application/x-301 .323 text/h323 .906 application/x-906 .907 drawing/907 .a11 application/x-a11 .acp audio/x-mei-aac .ai application/postscript .aif audio/aiff

    2024年02月09日
    浏览(43)
  • HTTP的Content-type 和 responseType

    后端返回字节流,前端进行图片下载时遇到了问题,定位花了不少时间,本文再次记录梳理下  XMLHttpRequest本身支持responseType 允许我们手动的设置返回数据的类型 \\\'\\\' responseType 为空字符串时,采用默认类型 DOMString,与设置为 text 相同。 arraybuffer response 是一个包含二进制数据的

    2024年01月22日
    浏览(36)
  • 浏览器响应数据类型(Content-Type)详解

    浏览器要显示内容,首先需要判断响应消息中的数据属于哪种类型。Web 可以处理的数据包括文字、图像、声音、视频等多种类型,每种数据的显示方法都不同,因此必须先要知道返回了什么类型的数据,否则无法正确显示。 这时,我们需要一些信息才能判断数据类型,原则

    2024年02月11日
    浏览(47)
  • HTPP入门教程||HTTP 状态码||HTTP content-type

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。 HTTP 状态码的英文为  HTTP Status Code 。。 下面是常见的 HTTP 状态码: 200

    2024年02月16日
    浏览(47)
  • HTTP请求头响应头的Content-type和Response Type是什么?

    写代码写着写着发现这些HTTP的概念还不清楚,缕一缕。 根据MDN的解释 Content-Type 实体头部用于指示资源的 MIME 类型 MIME 类型,即媒体类型,是一种标准,用来表示文档、文件或字节流的性质和格式。 根据MDN的解释: response.type的值可以是: basic 标准值,同源响应 cors 接收到一

    2024年02月15日
    浏览(51)
  • http请求头Content-Type的值为text/plain报错415解决方案

    问题描述:http请求报错415,经过了解主要是请求头Content-Type的值为text/plain,为了方便演示,创建一个测试类 测试类 如果请求的请求头是text/plain,则会报错,错误码415 具体报错 解决方案很简单,直接用字符串接收参数就行,示例代码

    2024年02月15日
    浏览(57)
  • Request Headers和Response Headers中的Content-Type以及ResponseType

    HTTP请求响应过程中的Content-type你真的清楚吗 详解get与post请求方式、content-type与responseType、@Requestbody与@Requestparam的使用场景 axios配置请求头content-type浅谈 HTTP 请求头中的Content-Type类型 背景: Request Headers中的Content-Type: XMLHttpRequest 的 responseType 属性 Response Headers中的Content-Type R

    2024年02月13日
    浏览(69)
  • 在网页下载文件时,设置各种文件格式的response头中的content-type

    Ext MIME Type .doc application/msword .dot application/msword .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document .dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template .docm application/vnd.ms-word.document.macroEnabled.12 .dotm application/vnd.ms-word.template.macroEnabled.12 .xls application/vnd.ms-excel .x

    2024年02月05日
    浏览(55)
  • Content-Type 值有哪些?

    1、application/x-www-form-urlencoded 最常见 POST 提交数据的方式。 浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 Cntent-Type 被指定为 application/x-www-form-urlencoded。 其次,提交的数据按照【name=小草莓other=hahah】的方式进行编

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包