<method>属性

HTML 5 method属性

开发工具与关键技术:Visual Studio 2015
作者:徐晶旗
撰写时间:2019年7月6日 

(1) 定义和用法
method 属性规定如何发送表单数据(form-data)(表单数据发送到 action 属性所规定的页面)。
表单数据可以作为 URL 变量(使用method=“get”)的方式来发送或者 HTTP post (使用method=“post”)的方式来发送。

在下面的例子中,表单数据将通过 method 属性附加到 URL 上:

<form action="form_action.asp"method="get">
      <p>First name: <input type="text" name="fname" /></p>
      <p>Last name: <input type="text" name="lname" /></p>
      <input type="submit" value="Submit" />
</form>

(2) 语法:

<form action=”value”>

(3) method 属性
浏览器使用 method 属性设置的方法将表单中的数据传送给服务器进行处理。共有两种 方法:POST 方法和 GET 方法。
如果采用 POST 方法,浏览器将会按照下面两步来发送数据。首先,浏览器将与 action 属性中指定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方 法将数据发送给服务器。
在服务器端,一旦 POST 样式的应用程序开始执行时,就应该从一个标志位置读取参 数,而一旦读到参数,在应用程序能够使用这些表单值以前,必须对这些参数进行解码。 用户特定的服务器会明确指定应用程序应该如何接受这些参数。
另一种情况是采用 GET 方法,这时浏览器会与表单处理服务器建立连接,然后直接在一 个传输步骤中发送所有的表单数据:浏览器会将数据直接附在表单的 action URL 之后。 这两者之间用问号进行分隔。
一般浏览器通过上述任何一种方法都可以传输表单信息,而有些服务器只接受其中一种方 法提供的数据。可以在 标签的 method (方法)属性中指明表单处理服务器 要用方法来处理数据,使用POST 还是 GET。
(4) 用POST 还是 GET?
首先讲一下关于”get”方法的注释:
1、 该方法将表单数据以名称/值对的形式附加到 URL 中
2、 该方法对于用户希望加入书签的表单提交很有用
3、 在 URL 中放置的数据量是有限制的(不同的浏览器有差别),所以无法确保所有表单数据得到正确地传输

4、 绝不要使用 “get” 方法来传输敏感信息!(密码或其他敏感信息在浏览器地址栏中是可见的)
关于“post”方法的注释:
1、 该方法以 HTTP post 事务的方式来传递表单数据
2、 无法将通过 “post” 方法提交的表单加入书签
3、 与 “get” 相比,“post” 方法更健壮更安全,而且 “post” 没有容量限制

form表单的method属性是用来指定提交方式的提交方式有7种,常用的有POST,GET,HEAD默认的提交方式是GET,通过GET方式提交的数据会显示在地址栏里,
通过GET方式只能提交不超过4K的数据。POST不是默认的方式,必须指定,通过这种方式提交在地址栏是不显示提交数据的,提交的大小是不受限制的,如果要上传文件必须用POST方式

如果表单处理服务器既支持 POST 方法又支持 GET 方法,那么你该选择哪种方法呢?下面是有关这方面的一些规律:

如果希望获得最佳表单传输性能,可以采用 GET 方法发送只有少数简短字段的小表单。
一些服务器操作系统在处理可以立即传递给应用程序的命令行参数时,会限制其数目 和长度,在这种情况下,对那些有许多字段或是很长的文本域的表单来说,就应该采用POST 方法来发送。 • 如果你在编写服务器端的表单处理应用程序方面经验不足,应该选择 GET 方法。如 果采用 POST 方法,就要在读取和解码方法做些额外的工作,

也许这并不很难,但是也许你不太愿意去处理这些问题。 如果安全性是个问题,那么我们建议选用 POST 方法。GET 方法将表单参数直接 放在应用程序的 URL 中,这样网络窥探者可以很轻松地捕获它们,还可以从服务器 的日志文件中进行摘录。如果参数中包含了信用卡帐号这样的敏感信息,就会在不知 不觉中危及用户的安全。而 POST 应用程序就没有安全方面的漏洞,在将参数作为 单独的事务传输给服务器进行处理时,至少还可以采用加密的方法。如果想在表单之外调用服务器端的应用程序,而且包括向其传递参数的过程,就要采用GET 方法,因为该方法允许把表单这样的参数包括进来作为 URL 的一部分。而 另一方面,使用 POST 样式的应用程序却希望在 URL 后还能有一个来自浏览器额 外的传输过程,其中传输的内容不能作为传统a 标签的内容。

明确传递参数
前面的一些建议也可以作为选择此种方式的一定解释。假设你有一个很简单的表单,其中只包含x和y这两个参数。在对这些元素的值进行编码时,他们的形式如下所示:
X=28&y=66
在任何时候我们都可以创建一个传统的 a 标签,用它在调用带有所需参数值的表单,其形式如下所示:

<a href="http://www.example.com/example/program?x=28&y=66">

唯一的问题是,分隔参数所用的 & 符号也是字符实体中的插入符号。如果在 a标签的 href 属性中放入一个 & 符号,浏览器就会将其后面的字符替换成相应的字符实体。
为了防止出现这种情况,我们必须用它的实体对等物来替换 & 符号,也就是用 “&” 或 “&” 来替换。替换之后,上面的那个引用服务器应用程序的非表单示例将如下示:

<a href="http://www.example.com/example/program?x=28&amp;y=66">

注:本篇文献多参考W3School中内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值