HTML中<form>表单利用 post 提交与利用 get 提交时的区别

原创 2014年05月03日 20:21:10

先利用HTML的<form>表单写一个简单的注册页面

HTML代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>注册页面</title>
</head>

<fieldset>
	<legend>注册区域</legend>
    <form action="http://localhost:12345" method="post">
        <table border="1" bordercolor="#0099FF" width="70%" cellpadding="10" cellspacing="0">
            <tr>
                <th colspan="2">注册页面</th>
            </tr>
            <tr>
                <td>用户名:</td>
                <td><input type="text" name="user" /></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" name="psw" /></td>
            </tr>
            <tr>
                <td>确认密码:</td>
                <td><input type="password" name="repsw" /></td>
            </tr>
            <tr>
                <td>性别:</td>
                <td>
                    <input type="radio" name="sex" value="nan" />男
                    <input type="radio" name="sex" value="nv"  />女
                </td>
            </tr>
            <tr>
                <td>技术:</td>
                <td>
                    <input type="checkbox" name="tech" value="java" />JAVA
                    <input type="checkbox" name="tech" value="jsp" />JSP
                    <input type="checkbox" name="tech" value="html" />HTML
                </td>
            </tr>
            <tr>
                <td>国家:</td>
                <td>
                    <select name="country">
                        <option value="none">--选择国家--</option>
                        <option value="cn">中国</option>
                        <option value="en">英国</option>
                        <option value="us">美国</option>
                    </select>
                </td>
            </tr>
            <tr>
                <th colspan="2">
                    <input type="submit" value="提交数据" />
                    <input type="reset" value="清除数据" />
                </th>
            </tr>
        </table>
        
    </form>
</fieldset>
<body>
</body>
</html>

页面效果如下:


再写一个服务器端的代码

RegServer.java 代码如下:

class RegServer
{
	public static void main(String[] args) throws Exception{
		ServerSocket ss = new ServerSocket(12345);
		Socket s = ss.accept();
		InputStream in = s.getInputStream();
		byte[] buf = new byte[1024];
		int len = in.read(buf);
		System.out.println(new String(buf,0,len));
		OutputStream out = s.getOutputStream();
		PrintWriter pw = new PrintWriter(out,true);
		pw.println("<h1>注册成功</h1>");
		s.close();
		ss.close();
	}
}
输入数据:

提交数据利用 post 时,服务器端响应如下:


网站地址栏显示:http://localhost:12345/

用户提交的信息不会在地址栏出现


提交数据利用 get 时,服务器端响应如下:


网站地址栏显示:http://localhost:12345/?user=Tsang&psw=123456&repsw=123456&sex=nan&tech=java&tech=jsp&tech=html&country=us

用户提交的信息会在地址栏出现

总结:在form提交的时候,如果不指定Method,则默认为get请求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISOLatin-1)值。get请求请提交的数据放置在HTTP请求协议头中,而post提交的数据则放在实体数据中;
get方式提交的数据最多只能有1024字节,而post则没有此限制。 

通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
1、 登陆页面可以被浏览器缓存;
2、 其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。 

在Form中,建议使用post方法。


表单提交Post方法、Get方法背后的秘密

(转载)http://blog.csdn.net/wzwenhuan/article/details/7803510 表单大家都很熟悉,上网的时候经常会遇到表单 ...
  • u010746364
  • u010746364
  • 2016年11月25日 14:53
  • 6156

表单提交中get和post方式的区别

表单提交中get和post方式的区别有5点  1.get是从服务器上获取数据,post是向服务器传送数据。  2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段...
  • xinyuan510214
  • xinyuan510214
  • 2016年05月24日 11:39
  • 3596

表单提交get和post

一 get和post的区别   二 实战(post方式提交) 1、login.jsp  page language="java" import="java.util.*" contentT...
  • chengqiuming
  • chengqiuming
  • 2017年11月22日 12:17
  • 24

通过GET和POST方式提交表单

通过get方式提交表单(注意大写)   建立url连接添加name+pass(注意此时要将中文的name用URLEncoder.encode(name)解析     例子:  public class...
  • iceSony
  • iceSony
  • 2016年10月08日 16:31
  • 953

ASP.NET MVC 在控制器中接收视图表单POST过来的数据方法

http://www.zuowenjun.cn/post/2014/10/22/63.html ***************************************************...
  • zhao1949
  • zhao1949
  • 2016年07月21日 09:06
  • 2309

HTTP协议与HTML表单(再谈GET与POST的区别)

本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。   HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论。本...
  • darxin
  • darxin
  • 2009年12月05日 07:48
  • 62784

form表单提交的 get/post 方法(一)区别

转载:详细说明 http://www.jb51.net/web/12714.htmlget 形式:http://localhost:8080 /servlet?msg=杭州 post 形式:http...
  • ThePeakOfTheCloud
  • ThePeakOfTheCloud
  • 2016年12月25日 21:39
  • 1534

平台和web简单demo 3,表单提交 form get

  • 2016年04月07日 15:07
  • 49KB
  • 下载

表单的提交方式POST和GET

Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于: 1.在客户端,Get方式在通过URL提交数据,提交后在地址栏中的地址如图1.4.3所示。 图1.4...
  • oscar999
  • oscar999
  • 2007年09月19日 08:51
  • 24722

表单提交Post方法、Get方法背后的秘密

表单大家都很熟悉,上网的时候经常会遇到表单         表单用来接受用户的输入,并将用户的输入以“name=value值对”集合的形式提交到服务器进行处理。那...
  • wwwwenhuan
  • wwwwenhuan
  • 2012年07月30日 20:40
  • 58675
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTML中<form>表单利用 post 提交与利用 get 提交时的区别
举报原因:
原因补充:

(最多只允许输入30个字)