【web】 Http请求中请求头Content-Type讲解

编程知识 更新时间:2023-04-05 05:21:25

文章目录

  • 1. 场景类型
  • 2 Content-Type作用

1. 场景类型

在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值

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

例如: Content-Type: text/html;charset:utf-8;

常见的媒体格式类型如下:

text/html : HTML格式
text/plain :纯文本格式     
text/xml :  XML格式
image/gif :gif图片格式   
image/jpeg :jpg图片格式
image/png:png图片格式

以application开头的媒体格式类型:

application/xhtml+xml :XHTML格式
application/xml     : XML数据格式
application/atom+xml  :Atom XML聚合格式   
application/json    : JSON数据格式
application/pdf       :pdf格式 
application/msword  : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

另外一种常见的媒体格式是上传文件之时使用的:

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

2 Content-Type作用

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

那要从Content-Type的作用说起,Content-Type作用是为了告诉别人我携带的数据是什么格式?

  • 对于request请求
    get是不携带数据的,url中?后的参数不算做data
    post是需要带参数的,也就是data参数,客户端告诉服务端,自己的数据类型
  • 对于response响应
    反过来了,服务端告诉客户端,自己的数据类型,这样浏览器就知道是按text/html页面渲染,还是按照text/plain渲染
     
    我们举个例子来说明下,携带 Content-Type的必要性。

我们借鉴《Node.js Web 模块(加载静态页面的web功能)》中的例子,通过浏览器加载一个静态页面:

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

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

访问效果是:

浏览器把文本当做html来渲染,那么会隐藏html标签,并按照css样式等渲染!

我们把返回格式该一下,改为text/plain文本格式:

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

访问效果是:

注意红色标记的内容,本身是html标签,被当做普通文本显示出来了!因为服务端告诉浏览器数据是文本格式的,不是html格式的,因此浏览器就把标签当做普通文本对待了。

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

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

更多推荐

【web】 Http请求中请求头Content-Type讲解

本文发布于:2023-04-05 05:21:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/9937124d5fe30e23568586f2c4db3b26.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Http   web   Type   Content

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 44982文章数
  • 14阅读数
  • 0评论数