在HTML【1】中已经说明了HTML编程的基本方式,最后说到了表单提交的方式有get和post方式。那么究竟什么是get/post 方式呢,两者有什么差别?如今我就详细的介绍一下。

首先回想一下表单的基本编程,代码例如以下:

<form action="http://localhost:9090" method="post">
<table border="1" bordercolor='#0000ff'cellpadding="10" cellspacing="0" width=600 >
<tr>
<th colspan="2">注冊表单 </th>
</tr>
<tr>
<th>username称:</th>
<td> <input type="text"name="user"value=""/> </td>
</tr>
<tr>
<th>性别:</th>
<td><input type="password"name="pass"/></td>
</tr>
<tr>
<th>选择性别:</th>
<td>
<input type="radio"name='sex'value="man"/>男
<input type="radio"name='sex'value="woman"checked="checked"/>女
</td>
</tr>
<tr>
<th>选择技术:</th>
<td>
<input type="checkbox"name="tech"value="java"/>Java <input type="checkbox"/>C++<input type="checkbox"/>HTML
</td>
</tr>
<tr>
<th>选择国家:</th>
<td>
<select name="country">
<option value="none">---选择国家---</option>
<option value="USA" selected="selected">美国</option>
<option value="CN">中国</option>
<option value="EN">英国</option>
<option value="GER">德国</option>
</select>
</td>
</tr>
<tr>
<th colspan="2">
<input type="reset"value="清除数据"> <input type="submit"value="提交数据"/>
</th> </tr>
</table>
</form>

当中method="post"是post方式,默认的(我们也能够指定)为get方式。那么两者有什么差别呢?

这里先进行一下这种思考。既然是提交,那向什么地方提交呢?答案是肯定的,HTML网页向server提交表单数据,既然想到server那么就会想到tomcat,同一时候也必须想到能够自己编写一个Java程序来模拟tomcat的服务。

详细的步骤例如以下。首先ServerSocket监听一个port,相相应的HTML的action =“http://localhost:9090”表示数据提交到本地主机的9090port,当ServerSocket监听到有HTML对这个port进行连接,就accept这个Socket对象,然后就能够读取http交互的信息。详细的代码例如以下:

	public static void main(String[] args) throws IOException {
// 接收表单的数据
ServerSocket ss = new ServerSocket(9090);
Socket s = ss.accept();
System.out.println(s.getInetAddress().getHostAddress()); InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len)); PrintWriter out = new PrintWriter(s.getOutputStream(),true);
out.println("<font color='green'size=7>注冊成功</font>"); s.close();
ss.close(); }
}

那么咱们执行一下:

当提交方式是get的时候,收到的返回信息是:

以下的是标签栏的内容。

能够发现。他的全部数据在请求行的时候就会显示出来(并在标签栏里就显示)显然这是非诚不安全的。

以下是使用post返回的http的内容,照片例如以下:

能够看出它将提交的内容所有封装到空行之后的内容里,而且标签栏里面没有显示不论什么东西,显然这是相对照较安全的。

好了,它俩详细的差别例如以下:

1.从安全性看get<post,get 提交的数据汇在浏览器的地址栏显示

2.从提交的内容大小看get<post。get不能大于2K。而post提交理论上不受限制。但不要大于64K。

3.从请求响应速度看。get>post,get要求server马上处理请求,而post请求可能形成一个队列。

HTML【2】表单提交与服务层的模拟(具体解释get与post提交方式的不同)的更多相关文章

  1. form表单里如果只存在一个文本框,enter键提交

    在这里说一说浏览器里form表单的默认行为 我们都知道浏览器是存在很多默认行为的,可能是出于常用行为考虑又或者是历史原因.但有时候我们不需要这些默认行为.以下: 1).当form表单里只存在一个inp ...

  2. 获取表单的初始值,模拟placeholder属性

    input和textarea有一个默认属性defaultValue,即初始值. 即使在页面操作修改了input和textarea的内容,获取到的defaultValue依然是初始值.可通过该值模拟pl ...

  3. 使用jQuery.form插件,实现完美的表单异步提交

    传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...

  4. 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法

    curl函数库实现爬网页内容的链接在 http://www.cnblogs.com/linguanh/p/4292316.html 下面这个是没有name和id 标识的 <input type= ...

  5. .Net模拟提交表单

    2016-09-0210:49:20 以中邮速递API为服务接口,由于提交方式为表单提交,我要获取返回值来处理其他业务,所以一开始尝试采用Js后台获取返回值,但是涉及到跨域请求限制问题,那边服务端接口 ...

  6. 使用jQuery,实现完美的表单异步提交

    jQuery异步提交表单 <form id="form1" method="post"> <table border="1" ...

  7. form表单回车提交

    当form中只有一个input[type="text"](其他的表单元素可以随意有)的输入框时候,当input[type="text"]获得焦点的时候,无论表单 ...

  8. AngularJS系列:表单全解(表单验证,radio必选,三级联动,check绑定,form提交验证)

    一.查看$scope -->寻找Form控制变量的位置 Form控制变量 格式:form的name属性.input的name属性.$... formName.inputField.$pristi ...

  9. form表单提交过程

    本文为转载文章! 今天,我将站在HTML和单纯的Asp.net框架的角度来解释它们的工作方式,因此,本文不演示WebForms服务器控件的相关内容. 简单的表单,简单的处理方式 好了,让我们进入今天的 ...

随机推荐

  1. pandas把多个sheet读进一个DataFrame

    #!/usr/bin/python import pandas as pd import collections df_dict = pd.read_excel('c:\data\machines.x ...

  2. 使用idea2.5建立maven项目

    使用idea的步骤: 1.建立一个新的maven项目 2.选中maven项目 3.点击next,输入groupID和artifactid 4.点击next  选择projectlocation 5.选 ...

  3. js数据管理的思考

    最近要做一个农场项目,涉及到很多js数据管理的需求,这里也做下总结,不断的总结,再修正内容,也是快速进步的方法. 数据管理几个方面考虑: * 设置(更新)字段值 * 检索,根据id, index, 属 ...

  4. Obsolete---标记方法 类过期

    最近做一个接口的修改,由于是很老的接口,不太了解外部有多少地方引用了它. 但是内部的方法由于业务发展已经不太适合现在的需求,想改又不该动.所以想到了如果设置为过期. Obsolete 属性将某个程序实 ...

  5. Flex使用总结

    最近做的项目因为对浏览器的兼容要求是IE10以上,所以大胆的使用了Flex布局,这里总结一些使用心得仅供参考. 一,Flex简单介绍 Flex是Flexible Box的缩写,意为”弹性布局”.任何一 ...

  6. 三星A3、A5、A7、G7、J5、J7、S6系列等新机型的部分手机解锁 ROOT刷机

    三星A3.A5.A7.G7.J5.J7.S6系列等新机型的部分手机,三星官方加了限制,需要解锁后才能刷机如果没有解锁,刷第三方recovery或者刷非官方原版固件,都会刷不进,手机跳转到提示界面,显示 ...

  7. Eclipse安装配置——For Java

    1.下载安装JRE 2.下载Eclipse,解压到相应文件夹 3.配置Eclipse 3.1 配置字体大小  -12号 3.2配置workspace默认编码,utf-8,默认系统windows 3.3 ...

  8. 【Oracle】恢复重做日志组

    我们在Oracle的日常运维中,有可能会遇到重做日志组丢失的情况.下面我将模拟丢失不同状态的日志组,并分别给出解决办法: 重做日志有以下几种状态,如下: -  CURRENT:此状态表示正在被 LGW ...

  9. MxNet : use the MxNet windows versioin

    The MxNet needs  the following thirdparties: 1. lapack complie lapack-3.6.1: download the lapack-3.6 ...

  10. HTML 5语义化标签

    HTML 5的革新之一:语义化标签一节元素标签. 在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义.(即使我们用css样式的id和class形容这块内容的意义).这些标 ...