http://kb.cnblogs.com/page/129756/
http://www.cnblogs.com/fish-li/archive/2011/07/17/2108884.html#_labelStart
http://www.w3.org/TR/html4/interact/forms.html
浏览器提交表单
表单的发送
浏览器只将成功控件的数据发送到服务端
成功控件, 每个表单中的控件都应该有一个 name 属性和 "当前值", 在提交时, 它们将以 name=value&name=value 的形式做为提交数据的一部分
对于一些特殊情况, 成功控件还有以下规定
1. 控件不能是禁用状态 (disabled="disabled"), 禁用的控件将不是成功控件
2. 如果一个表单包含了多个提交按键, 那么仅当用户点击的那个提交按钮才算是成功控件
3. checkbox 控件, 只有被用户勾选的才算是成功控件
4. radio 控件, 只有被用户勾选的才算是成功控件
5. select 控件, 所有被选择的选项都做为成功控件, name 由 select 控件提供
6. file 控件, 如果它包含了选择的文件, 那么它将是一个成功控件
此外, 浏览器不会考虑 Reset 按钮以及 OBJECT 元素
注意
1. 对于 checkbox, radio 来说, 如果它们被确认为成功控件, 但没有为控件指定 value 属性, 那么在表单提交时, 将会以 "on" 做为它们的 value
2. 如果在服务端读不到某个表单控件的值, 请检查它是否满足以上规则
表单的提交方式
method="post", 表单数据将放在请求体中被发送出去
method="get", 表单数据将会追加到查询字符串中, 以查询字符串的形式提交到服务端
表单数据的编码规则
控件输入的内容并不是直接发送的, 而是经过一种编码规则来处理的
二种编码规则, 在 form 的 enctype 属性中指定
multipart/form-data: 上传文件时使用
application/x-www-form-urlencoded: 其它情形时使用 (默认)
浏览器提交表单过程
1. 识别所有的成功控件
2. 为所有的成功控件创建一个数据集合, 包含 control-name/current-value 值对
3. 按照 form.enctype 指定的编码规则对前面准备好的数据进行编码, 编码规则将放在请求的 Content-Type 中
4. 提交编码后的数据, 此时会区分 post, get 二种情况, 提交的地址由 form.action 属性指定的
TODO 字符集编码在哪里进行???
服务器根据表单来构造 request 请求对象
http://www.cnblogs.com/fish-li/archive/2011/07/17/2108884.html#_labelStart
http://www.w3.org/TR/html4/interact/forms.html
浏览器提交表单
表单的发送
浏览器只将成功控件的数据发送到服务端
成功控件, 每个表单中的控件都应该有一个 name 属性和 "当前值", 在提交时, 它们将以 name=value&name=value 的形式做为提交数据的一部分
对于一些特殊情况, 成功控件还有以下规定
1. 控件不能是禁用状态 (disabled="disabled"), 禁用的控件将不是成功控件
2. 如果一个表单包含了多个提交按键, 那么仅当用户点击的那个提交按钮才算是成功控件
3. checkbox 控件, 只有被用户勾选的才算是成功控件
4. radio 控件, 只有被用户勾选的才算是成功控件
5. select 控件, 所有被选择的选项都做为成功控件, name 由 select 控件提供
6. file 控件, 如果它包含了选择的文件, 那么它将是一个成功控件
此外, 浏览器不会考虑 Reset 按钮以及 OBJECT 元素
注意
1. 对于 checkbox, radio 来说, 如果它们被确认为成功控件, 但没有为控件指定 value 属性, 那么在表单提交时, 将会以 "on" 做为它们的 value
2. 如果在服务端读不到某个表单控件的值, 请检查它是否满足以上规则
表单的提交方式
method="post", 表单数据将放在请求体中被发送出去
method="get", 表单数据将会追加到查询字符串中, 以查询字符串的形式提交到服务端
表单数据的编码规则
控件输入的内容并不是直接发送的, 而是经过一种编码规则来处理的
二种编码规则, 在 form 的 enctype 属性中指定
multipart/form-data: 上传文件时使用
application/x-www-form-urlencoded: 其它情形时使用 (默认)
浏览器提交表单过程
1. 识别所有的成功控件
2. 为所有的成功控件创建一个数据集合, 包含 control-name/current-value 值对
3. 按照 form.enctype 指定的编码规则对前面准备好的数据进行编码, 编码规则将放在请求的 Content-Type 中
4. 提交编码后的数据, 此时会区分 post, get 二种情况, 提交的地址由 form.action 属性指定的
TODO 字符集编码在哪里进行???
服务器根据表单来构造 request 请求对象
0 件のコメント:
コメントを投稿