表单
HTML表单
标记用于创建一个表单,表单用于用于搜集不同类型的用户输入- action:指定表单数据提交到哪个地址进行处理
- method:定义处理程序从表单中获得信息的方式。(post或get)。决定了表单中已收集数据是用什么样的方法发送到服务器的
- enctype:设置表单信息向服务器提交的编码方式,
表单编码方式
application/x-www-form-urlencoded
form数据转换成一个字串(name1=value1& amp;name2=value2...)
如包含用户名和密码的数据:
编码后为:"name=Slr&passwd=1234567"
multipart/form-data
- 浏览器会把整个表单以控件为单位分割,并为每个部分加上 Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件 name)等信息,并加上分割符(boundary)。
- 如果传送的内容是一个文件的话,那么还会包含文件名信息,以及文件内容的类型。
- multipart/form-data的请求头示例
Content-Type: multipart/form-data; boundary=${bound}
tip
- 默认的缺省值是“application/x-www-form-urlencoded”
- 当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串,然后把这个字串append到url后面,用?分割,加载这个新的url。
- 当action为post时候,浏览器把form数据封装到http body中,然后发送到server。
- 如果没有type=file的控件(也就是需要传输文件内容),用默认的application/x-www-form-urlencoded就可以了。
- 如果有type=file的话,就要用到multipart/form-data了。
内心柔软,技术要强硬。