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请求的时候都会进行两次的发包,火狐浏览器就不是。