Form的enctype属性
Form的enctype属性
一般都使用html的Form表单通过HTTP POST方法发送Request body。下面是一个form:
1 | <form action="/process" method="post"> |
如果使用GET方法,input中的key/vaule会编码后放进URL的query部分发送出去。如果使用POST方法,input中的key/value会编码后放进request的body中发送出去。
例如:
1 | first_name=xxx&last_name=yyy |
这是默认的情况:key=value,并使用”&”符号连接多个key/value。
但并非一定会如此组织,它由form的enctype属性决定的:<form action="/process" method="post" enctype=xxxxxx>
。这个属性有三种值:
1 | application/x-www-form-urlencoded |
默认的值为application/x-www-form-urlencoded
,它的组织形式上面已经解释了。
如果设置为multipart/form-data
,则会将编码后的key/value将组织成MIME数据的形式。例如:
1 | ------WebKitFormBoundaryMPNjKpeO9cLiocMw |
那么选择哪个enctype组织形式?如果是简单的文本类型,使用默认的application/x-www-form-urlencoded
会更简单、更高效。但如果发送大量数据(比如上传文件),应该使用multipart/form-data
,甚至将数据进行Base64编码后,也可以使用multipart/form-data
的形式。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 骏马金龙!
评论