区别:1、get把参数数据队列加到提交表单的ACTION属性所指的URL中,而post是通过“HTTP post”机制,将表单内各个字段与其内容放置在“HTML HEADER”内一起传送到ACTION属性所指的URL地址;2、get方式,服务器端用“Request.QueryString”获取变量的值,对于post方式,服务器端用“Request.Form”获取提交的数据。
本文操作环境:windows10系统、javascript1.8.5&&html5版、Dell G3电脑。
1、 get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
2、 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。
3、get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,因服务器的不同而异.
4、get安全性非常低,post安全性较高。
5、跟是一样的,也就是说,action页面后边带的参数列表会被忽视;而跟是不一样的。
另外
Get请求有如下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个问号?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。
Post请求有如下特性:数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
总而言之:当我们在提交表单的时候我们通常用post方式,当我们要传送一个较大的数据文件时,需要用post。当传递的值只需用参数方式(这个值不大于2KB)的时候,用get方式即可。
所以对于ajax提交两者用法自然就明了了。
扩展知识:
那么如何选择get和post呢?
get请求的目的是给予服务器一些参数,以便从服务器获取列表.例如:list.aspx?page=1,表示获取第一页的数据
如果调用是要检索服务器上的数据则使用get,另外需要注意的是,如果要检索的值会随时间和更新进程的改变而改变,则要在get调用中添加一个随机数或者时间戳,这样后面的调用才不会使用先前的不正确的缓存。与post相比,get更简单也更快,并且在大部分情况下都能用。
post请求的目的是向服务器发送一些参数
无法使用缓存文件(更新服务器上的文件或数据库),使用post
向服务器发送大量数据(post没有数据量限制),使用post
发送包含未知字符的用户输入时,post比get更稳定也更可靠
我们知道get的目的就如同其名字一样是用于获取信息的。它旨在显示出页面上你要阅读的信息。浏览器会缓冲get请求的执行结果,如果同样的get请求再次发出,浏览器就会显示缓冲的结果而不是重新运行整个请求。这一流程不同于浏览器的处理过程,但是它是有意设计成这样,使get调用更有效率。get调用会检索要显示在页面中的数据,数据不会再服务器上被更改,因此重新请求相同数据的时候会得到相同的结果。
post方法应该用于需要更新服务器信息的地方。如某调用要更改保存在服务器上的数据,而从两个同样的post调用返回的结果或许会完全不同,因为第二个post调用的值与第一个的值不相同,这是由于第一个调用已经更新了其中一些值。post调用通常会从服务器上获取响应而不是保持前一个响应的缓存。
get请求
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } /* 1.缓存 在url?后面连接一个随机数,时间戳 2.乱码 编码encodeURI */ xhr.open('get','2.get.php?username='+encodeURI('刘伟')+'&age=30&' + new Date().getTime(),true); xhr.send(); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
post请求
oBtn.onclick = function() { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } xhr.open('post','2.post.php',true); //post方式,数据放在send()里面作为参数传递 xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明发送的数据类型 //post没有缓存问题 //无需编码 xhr.send('username=刘伟&age=30'); xhr.onreadystatechange = function() { if ( xhr.readyState == 4 ) { if ( xhr.status == 200 ) { alert( xhr.responseText ); } else { alert('出错了,Err:' + xhr.status); } } } }
【相关教程推荐:AJAX视频教程】
以上是ajax请求时post和get的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!