get方法和post方法的区别和联系

1、功能不同:
post是向服务器发送数据;
get是向服务器获取数据;
2、过程不同:
get在浏览器回退时是无害的,但是post会再次提交请求;
get请求会被浏览器主动缓存,但是post不会,除非手动设置;
get请求只能进行URL编码,但是post支持多种编码方式;
get请求的参数会保存在浏览器的历史记录中。
get请求在URL中传送的参数是有长度限制的,但是post没有;
get比post更加不安全,因为传送的参数直接暴露在URL上,所以不能来传送敏感信息。
get参数通过URL传送,但是post是放在request body里面的。
3、获取值的方式不同
get方法,服务端使用的是request.queryString();
post方法,服务端使用的是request.form()获取提交的数据。
4、底层记忆方法:
http协议中两种发送请求的方法;HTTP是基于TCP/IP协议关于数据在万维网中如何通信的协议。
在万维网中,TCP是一辆运输数据的车子,但是需要分清每辆车是做什么用的,这样才能够让运输数据有目的性,并且有秩序,所以呢,Http就发挥作用,给每个车子明确标好是坐什么服务:get、post、delete、put等。要使用GET服务时候,就给车一个标签贴着GET,然后将信息放在车顶的URL中,但是车顶的东西不能无限制的放;
而post方法是将要传动的数据放在车厢内,这样敏感信息就更加安全,并且车厢很大,没有限制噻多少数据。
所以说get方法和post方法就是TCP连接。
并且get会产生一个TCP数据包,而post会产生两个TCP数据包。
对于get方法:HTTP会把header和data一起发送出去;服务器响应回来200;对于post方法,HTTP会先发送header,服务器响应100;再发送data,服务器响应200。并且研究表明:在网络较好的环境下,我们发送一次数据包和发送两次数据包的时间大致相同,但是网络不好的情况下,两次TCP包对于校验数据的完整性有很大的作用;并且并不是所有的浏览器在处理这个post请求的时候都会进行两次的发包,火狐浏览器就不是。

你可能感兴趣的:(网络)