HTML 标签的 method 属性

定义和用法

method 属性规定如何发送表单数据(表单数据发送到 action 属性所规定的页面)。浏览器

表单数据能够做为 URL 变量(method="get")或者 HTTP post (method="post")的方式来发送。安全

method 属性

浏览器使用 method 属性设置的方法将表单中的数据传送给服务器进行处理。共有两种方法:POST 方法和 GET 方法。服务器

若是采用 POST 方法,浏览器将会按照下面两步来发送数据。首先,浏览器将与 action 属性中指定的表单处理服务器创建联系,一旦创建链接以后,浏览器就会按分段传输的方法将数据发送给服务器。网络

在服务器端,一旦 POST 样式的应用程序开始执行时,就应该从一个标志位置读取参数,而一旦读到参数,在应用程序可以使用这些表单值之前,必须对这些参数进行解码。用户特定的服务器会明确指定应用程序应该如何接受这些参数。框架

另外一种状况是采用 GET 方法,这时浏览器会与表单处理服务器创建链接,而后直接在一个传输步骤中发送全部的表单数据:浏览器会将数据直接附在表单的 action URL 以后。这二者之间用问号进行分隔。post

通常浏览器经过上述任何一种方法均可以传输表单信息,而有些服务器只接受其中一种方法提供的数据。能够在 <form> 标签的 method (方法)属性中指明表单处理服务器要用方法来处理数据,使 POST 仍是 GET。性能

POST 仍是 GET?

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

  • 若是但愿得到最佳表单传输性能,能够采用 GET 方法发送只有少数简短字段的小表单。
  • 一些服务器操做系统在处理能够当即传递给应用程序的命令行参数时,会限制其数目和长度,在这种状况下,对那些有许多字段或是很长的文本域的表单来讲,就应该采用 POST 方法来发送。
  • 若是你在编写服务器端的表单处理应用程序方面经验不足,应该选择 GET 方法。若是采用 POST 方法,就要在读取和解码方法作些额外的工做,也许这并不很难,可是也许你不太愿意去处理这些问题。
  • 若是安全性是个问题,那么咱们建议选用 POST 方法。GET 方法将表单参数直接放在应用程序的 URL 中,这样网络窥探者能够很轻松地捕获它们,还能够从服务器的日志文件中进行摘录。若是参数中包含了信用卡账号这样的敏感信息,就会在不知不觉中危及用户的安全。而 POST 应用程序就没有安全方面的漏洞,在将参数做为单独的事务传输给服务器进行处理时,至少还能够采用加密的方法。
  • 若是想在表单以外调用服务器端的应用程序,并且包括向其传递参数的过程,就要采用 GET 方法,由于该方法容许把表单这样的参数包括进来做为 URL 的一部分。而另外一方面,使用 POST 样式的应用程序却但愿在 URL 后还能有一个来自浏览器额外的传输过程,其中传输的内容不能做为传统 <a> 标签的内容。

明确传递参数

前面的一些建议也能够做为选择此种方式的必定解释。假设你有一个很简单的表单,其中只包含 x 和 y 这两个参数。在对这些元素的值进行编码时,它们的形式以下所示:加密

x=28&y=66

若是表单采用了 method=GET,那么用来引用服务器端应用程序的 URL 将以下所示:操作系统

http://www.example.com/example/program?x=28&y=66

在任什么时候候咱们均可以建立一个传统的 <a> 标签,用它在调用带有所需参数值的表单,其形式以下所示:

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

惟一的问题是,分隔参数所用的 & 符号也是字符实体中的插入符号。若是在 <a> 标签的 href 属性中放入一个 & 符号,浏览器就会将其后面的字符替换成相应的字符实体。

为了防止出现这种状况,咱们必须用它的实体对等物来替换 & 符号,也就是用 "&#38;" 或 "&amp;" 来替换。替换以后,上面的那个引用服务器应用程序的非表单示例将以下所示:

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

因为这样仍是不能在 URL 中使用 & 符号,而且有可能在未来带来混乱,所以咱们鼓励服务器设置最后也可以接受用分号做为参数分隔符。您也能够看看本身的服务器文档,了解服务器是否支持这种功能。

语法

<form target="value">

属性值

描述
_blank 在新窗口中打开。
_self 默认。在相同的框架中打开。
_parent 在父框架集中打开。
_top 在整个窗口中打开。
framename 在指定的框架中打开。
相关文章
相关标签/搜索