关于表单数据的传输问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zqh862735956/article/details/70176289

表单数据的提交

我们都知道我们客户端要实现和服务器端的互交要向后端去提交数据并从后端接收数据,而我们常用的方式也就是利用form表单去提交。在我们实际开发的过程中,form表单的提交也是十分重要的一项技术。下面我们就来谈谈关于表单数据的提交

关于提交方式

说起提交方式,我们要提到的就是HTTP协议了。我们都知道,HTTP协议请求格式分为四个模块,分别是:请求行、请求头、请求空行、请求体。如下:

 
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
     
GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive
POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive
(----此处空一行----)
name=Professional%20Ajax&publisher=Wiley

在请求头中,一般就会说明请求类型.在我们HTTP协议中定义了以下几种常见的请求或者说互交方法:

  1. GET:请求获取Request-URI所标识的资源 (查)
  2. POST:在Request-URI所标识的资源后附加新的数据 (改)
  3. PUT:请求服务器存储一个资源,并用Request-URI作为其标识 (增)
  4. DELETE:请求服务器删除Request-URI所标识的资源 (删)
  5. OPTIONS: 请求查询服务器的性能,或者查询与资源相关的选项和需求
  6. HEAD:请求获取由Request-URI所标识的资源的响应消息报头
  7. TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断
  8. CONNECT:保留将来使用
    当然,我们前端常用的也就是前两种,下面,我们来聊聊GET和POST提交数据的不同之处。

GET提交

GET提交方式请求的数据会附加到浏览器url的后面,我们在地址栏可以看到请求的数据内容。所以GET方式发送的数据量会比较少,而且,GET方式发送的数据相对来说比较不安全。不过,正因为GET提交的数据量小,且是随着url一起提交给服务端的,所以它的数据提交效率比较快。所以,我们平常在实际开发中,一般使用GET提交用来信息的获取操作.在保证安全性的前提下最大限度的提升网页的效率。

POST提交

POST提交方式,在设计的最初是用来修改服务器资源的,但后来,在我们的使用中,渐渐的将它的作用范围扩大了。使它不仅仅用来修改服务器资源。相对于GET方式来说,它的特性还是比较明显的。POST提交的数据不会显示在url中,所以相对来说POST提交是比较安全的。而且,post提交的数据量也是比GET提交的数据量要大的多。所以,我们一般利用POST提交方式来给服务器设发送数据,设置信息,或者数据量比较大的,安全要求比较高的信息.

关于数据提交的安全性问题

上面我们说的数据的提交方式,并且有所提及GET方式提交数据是附加到URL后面,以明文显示的。所以,比较不安全。POST提交方式不会在URl上显示。相对安全一点,那么,可能有人要问:“POST提交方式到底是明文传输,还是密文传输呢?”
要搞清楚这点,首先,我们要认识到一点:密文到底是什么,是不是就是看不见的就是密文呢?当然,在坐的都知道,密文不是这样。密文就是加密后的“文本”,某些时候,我们可以看到密文,但是,就算你看到也是没有用的,你只要不会对密文解密。那么,你看到的仅仅就是一串字符串而已。根本就不知道这段字符串显示的是什么内容。如下:

 
     
1
 
     
6L+Z5piv5LuA5LmI5LiA5Liy5Luj56CB77yM5oiR55yf55qE5LiN55+l6YGT5ZWK //这是什么一串代码,我真的不知道啊

那么,POST提交是明文还是密文提交呢?
其实,POST提交数据也是明文的方式提交的,只是我们用户比较不容易看到而已,当然,我们能在HTTP请求头中能够看到,所以,在我们的实际开发中,这种以明文提交的数据还是比较不安全的,所以,我们一般在POST提交的时候,会先给其加密再来将其提交到服务器端。到达服务端后,由服务器直接存储获得提交的数据,下次从服务器获取时再给其解密。当然,还有另一种方式,通过HTTPS协议即ssl+Http协议来提交数据,但这种提交方式在一定的程度上影响网页效率。这里不做过多的介绍,有兴趣的同学可以转 百度

总结

  • get方式的安全性较post差些,数据量较小些,如若包含机密或者数据量过大的话,建议用post提交。
  • 在做数据查询的时候,建议使用GET方式,而在做数据添加、修改删除的时候,建议用POST方式

猜你喜欢

转载自blog.csdn.net/zqh862735956/article/details/70176289
今日推荐