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方法。


相关文章推荐

div下同行多元素右对齐

方法一: float:right 此外,浮动还会使得布局更紧凑(没空隙) hello hi 效果图如下: 方法二: display:inline-block+text-alig...

linux下负载均衡(LVS安装与配置)

一、LVS的三种包转发方式       LVS提供了三种包转发方式:NAT(网络地址映射)、IP Tunneling(IP隧道)、Direct Routing(直接路由)      不同的转发模式决...

[HTML]表单form的method属性get/post区别

一、问题的提出    action="getPostServlet/getPost.do?param4=param4" method="get">                      ...

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

method属性规定如何发送表单的数据。有两种提交的方法分别为get和post。1、get:提交的数据量要小于1024字节,表单提交时表单域数值(表单请求的信息:账号、密码…)将在地址栏显示。 ...

HTML表单(HTML Form)中get 和post 的区别

当用户在 HTML 表单 (HTML Form) 中输入信息并提交之后,有两种方法将信息从浏览器传送到 Web 服务器 (Web Server)。 一种方法是通过 URL,另外一种是在 HTTP R...
  • cynhafa
  • cynhafa
  • 2011年09月09日 14:15
  • 5149

对表单form get或post提交数据乱码的终极处理方式

我们先定义一个监听器叫做EncodeFilter,哎,还是贴代码吧,语言太苍白了package com.zgf.filter; import java.io.BufferedReader; impo...

表单form的提交有两种方式,一种是get的方法,一种是post 的方法

表单form的提交有两种方式,一种是get的方法,一种是post 的方法.看下面代码,理解ASP.NET Get和Post两种提交的区别:                     你的名字  ...

asp.net JS+form表单Post和Get方式提交数据

最近工作中用到了一种使用JS+form用post方式上传文件一种方式。前台用Html input,使用JS方式往服务器上传文件,具体实现看代码: 前台页面使用aspx网页,使用input 标...

HTML表单Form中的get和post方法:

HTML表单Form中的get和post方法: get post form 在B/S应用程序中,前台与后台的数据交互,都是通过HTML中Form表单完成的。  Form提供了两种数据传输的方式——ge...

form表单中method的get和post区别

一、get和post定义 form元素的method属性用来指定发送form的http方法; 使用get时,form数据集被附加到form元素的action属性所指定的URL后面; 使用post...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTML中<form>表单利用 post 提交与利用 get 提交时的区别
举报原因:
原因补充:

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