HTML <form> method attribute
Kiyayya da amfani
method
属性 za a bayyana siffar samun data na formi (data na formi za a samu zuwa waje da kiyashin action).
Data na formi za a samu a matsayin wakilin URL (a samu da method="get") ko a matsayin amfani da HTTP POST (a samu da method="post")
Tattalin kanan GET:
- Haɗa da data na formi a tsarin sunan/daga (a samu a URL)
- URL ana mayar da tsawon hanyar (kimanin 3000 marubutu)
- Kada a samu amfani da GET domin tukwasi da data kama (zai zama ana yin tasiri a URL)
- Ana ce mace da aɗa haddace abin da zai yiwa bayanin bukukuwa
- GET 更适合非安全数据,例如 Google 中的查询字符串
关于 POST 的说明:
- 在 HTTP 请求的正文中附加表单数据(数据不会显示在URL中)。
- 没有大小限制。
- 使用 POST 提交的表单无法被加入书签。
语法
详解 method 属性
浏览器使用 method 属性设置的方法将表单中的数据传送给服务器进行处理。共有两种方法:POST 方法和 GET 方法。
如果采用 POST 方法,浏览器将会按照下面两步来发送数据。首先,浏览器将与 action 属性中指定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方法将数据发送给服务器。
A cikin samar server, bayan POST samar shirin ya bada amfani, ana gudanar da amfani da tsarin samar a kan tsa tsakiyar samar, kuma bayan kuma gudanar da amfani da sabonai, wajib ce samarai ya gudanar da amfani da sabonai a cikin form. Samarai na server na tsarin zai nuna hakan samarai ya gudanar da amfani da sabonai.
Anan gari shine kaiyada GET method, kuma kwanan nuna keiwa da tsarin samar form, kuma kuma ya kai kai kai gudanar da samar form data: kwanan nuna keiwa ya kai kai kai raba data na form a cikin URL na action. Kuma daga baya ana raba su da yakin kusa.
一般浏览器通过上述任何一种方法都可以传输表单信息,而有些服务器只接受其中一种方法提供的数据。可以在
POST 还是 GET?
如果表单处理服务器既支持 POST 方法又支持 GET 方法,那么你该选择哪种方法呢?下面是有关这方面的一些规律:
- 如果希望获得最佳表单传输性能,可以采用 GET 方法发送只有少数简短字段的小表单。
- 一些服务器操作系统在处理可以立即传递给应用程序的命令行参数时,会限制其数目和长度,在这种情况下,对那些有许多字段或是很长的文本域的表单来说,就应该采用 POST 方法来发送。
- 如果你在编写服务器端的表单处理应用程序方面经验不足,应该选择 GET 方法。如果采用 POST 方法,就要在读取和解码方法做些额外的工作,也许这并不很难,但是也许你不太愿意去处理这些问题。
- 如果安全性是个问题,那么我们建议选用 POST 方法。GET 方法将表单参数直接放在应用程序的 URL 中,这样网络窥探者可以很轻松地捕获它们,还可以从服务器的日志文件中进行摘录。如果参数中包含了信用卡帐号这样的敏感信息,就会在不知不觉中危及用户的安全。而 POST 应用程序就没有安全方面的漏洞,在将参数作为单独的事务传输给服务器进行处理时,至少还可以采用加密的方法。
- 如果想在表单之外调用服务器端的应用程序,而且包括向其传递参数的过程,就要采用 GET 方法,因为该方法允许把表单这样的参数包括进来作为 URL 的一部分。而另一方面,使用 POST 样式的应用程序却希望在 URL 后还能有一个来自浏览器额外的传输过程,其中传输的内容不能作为传统 标签的内容。
明确传递参数
前面的一些建议也可以作为选择此种方式的一定解释。假设你有一个很简单的表单,其中只包含 x 和 y 这两个参数。在对这些元素的值进行编码时,它们的形式如下所示:
x=28&y=66
如果表单采用了 method=GET,那么用来引用服务器端应用程序的 URL 将如下所示:
http://www.example.com/example/program?x=28&y=66
A kogin dake ake da kace kaihakar da <a> tag, ya da a cikin aiki na cikin yankin da aiki wanda ya kewayi, kamar yadda a cikin hanyar:
唯一的问题是,分隔参数所用的 & 符号也是字符实体中的插入符号。如果在 标签的 href 属性中放入一个 & 符号,浏览器就会将其后面的字符替换成相应的字符实体。
为了防止出现这种情况,我们必须用它的实体对等物来替换 & 符号,也就是用 "&" 或 "&" 来替换。替换之后,上面的那个引用服务器应用程序的非表单示例将如下所示:
由于这样还是不能在 URL 中使用 & 符号,并且有可能在将来带来混乱,因此我们鼓励服务器设置最后也能够接受用分号作为参数分隔符。您也可以看看自己的服务器文档,了解服务器是否支持这种功能。
浏览器支持
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
支持 | 支持 | 支持 | 支持 | 支持 |