zoukankan      html  css  js  c++  java
  • http header Content-Type之常用三种

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

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

    句法:

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

    指令

    media-type
    资源或数据的 MIME 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.1
    Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryyb1zYhTI38xpQxBK
    
    ------WebKitFormBoundaryyb1zYhTI38xpQxBK
    Content-Disposition: form-data; name="city_id"
    
    1
    
    ------WebKitFormBoundaryyb1zYhTI38xpQxBK
    Content-Disposition: form-data; name="company_id"
    
    2
    ------WebKitFormBoundaryyb1zYhTI38xpQxBK
    Content-Disposition: form-data; name="file"; filename="chrome.png"
    Content-Type: image/png
    
    PNG ... 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属性,那么默认该类型提交数据。

  • 相关阅读:
    CentOS5.6下SVN的安装
    在servlet中的init方法中使用getInitParameter方法空指针错误
    Linux iostat监测IO状态【转】
    自己实现一个list比较器 实现Comparator()接口
    一些常用的随机实现
    java里null强转为某个类会报错吗?
    java游戏服务器简单工厂模式
    起个头!准备写一个 设计模式系列
    HashMap根据value值排序
    java游戏服务器 策略+简单工厂
  • 原文地址:https://www.cnblogs.com/yadiblogs/p/10769705.html
Copyright © 2011-2022 走看看