博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
http header Content-Type之常用三种
阅读量:5147 次
发布时间:2019-06-13

本文共 1561 字,大约阅读时间需要 5 分钟。

Content-Type 用于指示资源的MIME类型

  • 在响应头中,告诉客户端实际返回内容的类型
  • 在请求头中,告诉服务器实际发送的数据类型

句法:

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

指令

media-type
资源或数据的   。
charset
字符编码标准。
boundary
对于多部分实体,boundary 是必需的,其包括来自一组字符的1到70个字符,已知通过电子邮件网关是非常健壮的,而不是以空白结尾。它用于封装消息的多个部分的边界。

这里主要介绍三种常见的media-type: application/x-www-form-urlencoded, multipart/form-data, application/json

我们使用chrome控制台可以看到,有些请求参数在Form Data中,一个在Request Payload中,这是因为Content-Type设置不同。

 

  1. application/x-www-form-urlencoded  请求参数在Form Data中,键值对,用间隔分开,如: name1=value1&name2=value2
  2. multipart/form-data  请求参数在Request Payload 中, 可以上传文件,也可以上传键值对,最后会转化为一条由boundary字符串分隔的信息体。boundary是一个不可能在数据中出现的字符串。 如:------WebKitFormBoundaryyb1zYhTI38xpQxBK就是boundary
POST http://www.example.com HTTP/1.1Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryyb1zYhTI38xpQxBK------WebKitFormBoundaryyb1zYhTI38xpQxBKContent-Disposition: form-data; name="city_id"1------WebKitFormBoundaryyb1zYhTI38xpQxBKContent-Disposition: form-data; name="company_id"2------WebKitFormBoundaryyb1zYhTI38xpQxBKContent-Disposition: form-data; name="file"; filename="chrome.png"Content-Type: image/pngPNG ... content of chrome.png ...------WebKitFormBoundaryyb1zYhTI38xpQxBK--

     3. application/json 请求参数在Request Payload中, 参数形式:{key:value}

 

 

以上三种类型,在服务端获取参数的方法不同, 因此如果设置错误,可能会造成后端接受不到数据的情况。

 

实际开发中选择哪种Content-Type呢?

二进制文件选择:multipart/form-data;

大段的json字符串,适合使用payload,因此可以选择:application/json

application/x-www-form-urlencoded:最常见,原生form变动,如果不设置enctype属性,那么默认该类型提交数据。

转载于:https://www.cnblogs.com/yadiblogs/p/10769705.html

你可能感兴趣的文章
java 排序3 插入排序
查看>>
旋转90度也可以,Lumia的四大重置方式
查看>>
服务器与服务器之间的链接测试
查看>>
linux 技巧:使用 screen 管理你的远程会话 - [linux]
查看>>
[HDOJ1561]The more, The Better(树dp,背包)
查看>>
基于visual Studio2013解决C语言竞赛题之0704字符串长度
查看>>
JavaScript阻止事件冒泡
查看>>
JavaScript(函数、变量)
查看>>
Codeforces 670D1. Magic Powder - 1 暴力
查看>>
基于visual Studio2013解决面试题之0403串联字符串
查看>>
获取用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
查看>>
移动电源频率设置
查看>>
数组中对象的去重
查看>>
计算机网络【3】—— IP地址分类与子网划分
查看>>
HDU-2568 前进
查看>>
[工作积累] UE4 并行渲染的同步 - Sync between FParallelCommandListSet & FRHICommandListImmediate calls...
查看>>
android四大组件之ContentProvider
查看>>
Paxos理解
查看>>
借助预编译防止sql注入攻击
查看>>
2019-1-8作业
查看>>