HTTP content-type

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

Content-Type 标头告诉客户端实际返回的内容的内容类型。

语法格式:

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

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

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 : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
另外一种常见的媒体格式是上传文件之时使用的:

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

formdata和json的区别:

看下面的图就明白了。
从前端传来的都是二进制数据
1、content-type是不同的
2、json我们已经序列化好了,而formdata还是需要进行处理,虽然说后端框架已经帮我们处理好了。
formdata:


json:


在formdata中有种特殊的格式:
multipart/form-data


这种格式是传递的一条消息,相当于在消息体里面套消息, 给文件上传提供了便利,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;
由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。
multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。

总结:

在Form元素的语法中,EncType表明提交数据的格式,用 Enctype 属性指定将数据回发到服务器时浏览器使用的编码类型。
下边是说明:
application/x-www-form-urlencoded : 表单数据被编码为名称/值对。这是标准的默认编码格式。
multipart/form-data : 表单数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
application/json: JSON数据格式,将数据进行序列化的一种方式,后端可以直接使用。
text/plain : 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
补充
form的enctype属性为编码方式,常用有两种: application/x-www-form-urlencoded 和 multipart/form-data , 默认为application/x-www-form-urlencoded 。
当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2…),然后把这个字串append到url后面,用?分割,加载这个新的url。
当action为post时候,浏览器把form数据封装到http body中,然后发送到server。
如果没有 type=file 的控件,用默认的 application/x-www-form-urlencoded 就可以了。
但是如果有 type=file 的话,也就是需要上传文件,就要用到 multipart/form-data 了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file)、Content-Type(默认为text/plain)、name(控件name)等信息,并加上分割符(boundary)。

formdata和json相关推荐

  1. 一个接口同时支持 form 表单、form-data、json 的优雅写法

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:https://juejin.cn/post/7054441239839506446 最近重写个项目遇到个比较棘手的问题,老项 ...

  2. 关于ajax form-data和json的区别,及其application/x-www-form-urlencoded;charset=UTF-8问题解决方案

    常见的ajax传值有两种方式 form-data $.ajax({type: "post",url: ctx + "login",data: {"us ...

  3. formdata 转json

    function toLogin() {var formData = new FormData($("form#arg")[0]);jQuery.ajax({url:domain ...

  4. post请求将formdata 转json

    contentType: "application/json;charset-UTF-8", $.ajax({type: "POST",headers:{//* ...

  5. HTTP Request Content-Type:application/x-www-form-urlencoded、multipart/form-data、application/json

    前言 application/x-www-form-urlencoded multipart/form-data application/json http请求 http请求由三部分组成,分别是:请求 ...

  6. Content-Type四种常见取值application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml

    四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml) 一 ...

  7. javascript中JSON对象和formdata格式互相转换

    在工作中需要用到表单提交,有些是JSON对象格式的,但是要用到FormData格式的数据,所以需要转换.代码如下://json对象转formdata格式function jsonToFormData( ...

  8. JSON对象转成formData对象,formData对象转成JSON对象

    在向后端请求时,如果上传的数据里存在file文件对象,需要用到表单提交,这时候我们需要将JSON对象,转成formData对象,具体见代码 const formData = new FormData( ...

  9. 服务器处理 json 数据

    今天做小程序后端,需要处理 json 数据,我用的 express 框架,无法直接处理,需要进行 json 提取,网上找了一堆,发现json 四种解析格式,在此记录一下 www-form-urlenc ...

最新文章

  1. 深入理解为什么MySQL全表扫描很慢?
  2. 微软亲手盖上IE棺材板:明年6月停用,慢且不安全,还因垄断被罚款170亿
  3. java类定义的顺序_Java类及对象的初始化顺序
  4. 数据库方面的操作示例
  5. php-rpm.conf,在新安装的宝塔面板中php无法启动起来
  6. Web.config的配置
  7. 【ES6入门04】:数值扩展
  8. linux刮刮乐小游戏源代码,HTML5-Canvas实例:刮刮乐游戏
  9. java_自定义标签运行原理
  10. 常见linux服务器系统异常问题
  11. 第四次作业-测试作业
  12. jmeter constant timer 如何添加_性能测试-Jmeter——软件测试圈-软件测试文章
  13. python接口自动化代码_python接口自动化(十六)--参数关联接口后传(详解)
  14. oracle--merge
  15. spring事件监听器系列三:通过ApplicationListener接口方式实现监听器源码
  16. RS485设计技巧TOP10
  17. 淘宝客推广平台软件源码
  18. One or more errors occurred 报错
  19. c语言撩妹小程序,撩妹简单的web小程序!分享给大家~~~~~~
  20. Kubernetes - CPU 单位

热门文章

  1. Source Insight4.0中文注释乱码解决方案
  2. 基于机器学习的恶意样本静态检测的代码详解(ember)
  3. Ubuntu Linux 下的经典游戏大全
  4. 加密机MAC相关标准
  5. 论如何对付漏扫,血泪篇,持续更新
  6. 从3万条豆瓣短评看《雷神3》
  7. Isomap流行学习_机器学习
  8. 第十七届全国大学生智能车竞赛西部赛区奖项
  9. 微信分享(支付)和QQ分享
  10. Java二叉树的前中后序遍历