积极奋斗的蜗牛

临溪而渔,不如退而结网。

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

先利用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方法。


阅读更多
文章标签: html 表单
个人分类: HTML
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭