html中<form>的method=post和method=get有什么区别

html-css018

html中<form>的method=post和method=get有什么区别,第1张

method 属性

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

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

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

另一种情况是采用 GET 方法,这时浏览器会与表单处理服务器建立连接,然后直接在一个传输步骤中发送所有的表单数据:浏览器会将数据直接附在表单的 action URL 之后。这两者之间用问号进行分隔。

楼上说的没错,我举个例子补充一点:

比如说有2个页面,a.htm和b.asp,你想将a.htm页面表单中的值传递给b.asp页面。

那么在a.htm中就会有如下的表单代码:

<form id="form1" method="get" action="b.asp">

<input name="Text1" type="text" value="11" />

<input id="Submit1" type="submit" value="submit" />

</form>

上面的代码中2个地方需要注意:

1、method的属性是get,所以通过网址传值,可见的;

2、表单中有2个对象,一个文本框,一个提交按钮。要传递的是文本框的值,注意要把文本框的id属性改成name属性,这样文本框的值才能在网址处显示出来。

当你浏览a.htm页并单击提交按钮时,页面转到b.asp页,网址变为:

http://localhost/WebSite2/b.asp?Text1=11

如果不想让值在网址处显示出来,method值换成post即可。

然后在b.asp中就可以通过服务器端代码获取传递过来的值了。

当method=get时,b.asp页面中通过<% =Request.QueryString["Text1"]%>获取值并输出;

当method=post时,b.asp页面中通过<% =Request.Form["Text1"]%>获取值并输出。

POST方法通常用于提交数据,数据的内容不会显示在浏览器的地址栏中,且对数据的长度没有限制。

GET方法会将你的数据在浏览器地址栏中显示出来,而且由于URL长度有限,所以传递的数据长度也受限制。