zoukankan      html  css  js  c++  java
  • 关于Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的区别及用法

    Form的enctype属性表示页面表单数据向服务端传输时的编码方式,常用有两种:application/x-www-form-urlencoded 和 multipart/form-data,默认为application/x-www-form-urlencoded。
    1、application/x-www-form-urlencoded: 
    窗体数据被编码为名称/值对,这是标准且默认的编码格式。当action为get时候,客户端把form数据转换成一个字串append到url后面,用?分割。当action为post时候,浏览器把form数据封装到http body中,然后发送到server。
    application/x-www-form-urlencoded 传递时的数据构造:
    ......
    username=twm&email=good@qq.com
    ......

    2、multipart/form-data:
    multipart表示的意思是单个消息头包含多个消息体的解决方案。multipart媒体类型对发送非文本的各媒体类型是有用的。一般多用于文件上传。

    multipart/form-data只是multipart的一种。目前常用的有以下这些类型(注:任何一种执行时无法识别的multipart子类型都被视为子类型"mixed")

    HTML FORM data (see Ch. 9 and App. B) multipart/form-data
    Messages with multiple parts multipart/mixed
    Messages with multiple, alternative parts multipart/alternative
    Message with multiple, related parts multipart/related
    Multiple parts are digests multipart/digest
    For reporting of email status (admin.) multipart/report
    Order of parts does not matter multipart/parallel
    Macintosh file data multipart/appledouble
    Aggregate messages; descriptor as header multipart/header-set
    Container for voice-mail multipart/voice-message
    Infinite multiparts - See Chapter 9 (Netscape) multipart/x-mixed-replace

    当客户端发起起求时:
    请求头包含Content-Type:"multipart/form-data; boundary=---------------------------30613490016641",表明form的enctype为multipart/form-data,同时分隔每个控件field的分割符(boundary)是'---------------------------30613490016641'。
    请求内容的每个field被分成小部分,而且包含一个value是"form-data"的"Content-Disposition"的头部;一个"name"属性对应field的ID。

    multipart/form-data 传递时的数据构造,见图:

  • 相关阅读:
    WCF简介-01
    专访Bruce Douglass,谈嵌入式经验
    svn查看工程版本库的url地址
    Hello Kiki (中国剩余定理模版)
    中国剩余定理 (CRT)
    Prime Cuts(POJ-1595)
    素数区间筛法
    出现或者反转后出现在每个字符串中的最长子串
    每个字符串至少出现两次且不重复的最长子串
    不小于k个字符串的最长子串
  • 原文地址:https://www.cnblogs.com/lyy0622/p/13932912.html
Copyright © 2011-2022 走看看