Heim >Web-Frontend >HTML-Tutorial >HTML【2】表单提交与服务层的模拟(详解get与post提交方式的不同)_html/css_WEB-ITnose

HTML【2】表单提交与服务层的模拟(详解get与post提交方式的不同)_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:38:141255Durchsuche

      在HTML【1】中已经说明了HTML编程的基本方式,最后说到了表单提交的方式有get和post方式,那么到底什么是get/post 方式呢,两者有什么区别?现在我就具体的介绍一下。

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


注册表单
用户名称:
性别:
选择性别:
选择技术: Java C++HTML
选择国家:

其中method="post"是post方式,默认的(我们也可以指定)为get方式。那么两者有什么区别呢?

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

         具体的过程如下,首先ServerSocket监听一个端口,相对应的HTML的action =“http://localhost:9090”表示数据提交到本地主机的9090端口,当ServerSocket监听到有HTML对这个端口进行连接,就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 2.从提交的内容大小看get 3.从请求响应速度看,get>post,get要求服务器立即处理请求,而post请求可能形成一个队列。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn