get和post的区别

  • get在浏览器回退时无害,而post会再次提交请求。
  • get在传输过程中,数据被存档在请求的url中,不够安全。而post传输的数据对用户来说都是不可见的。
  • get对参数的数据类型,限制为ASCALL字符。而post没有限制。
  • get通过url传递参数,post放在request body中。
  • 在缓存方面,get请求类似于查找过程,用户获取数据不用每次都与服务器进行连接,每次请求都会被浏览器主动缓存。而post是用来做一些修改删除的工作,必须与数据库进行交互,不建议使用缓存,使用也需要手动设置。
  • 在数据包上,一般来说,get产生一个数据包,post产生两个数据包。get方法中浏览器会把HTTP header和data一起发送出去,服务器响应200。post方法中,浏览器先发送header,服务器响应100 continue后,浏览器在发送data,服务器再响应200。

但实质上,get和post没有实质区别,它们都是基于TCP/IP协议,传输上没有区别,只是报文格式不同。在服务端支持的情况下,我们可以在url上加上参数,然后使用post方法;也可以在request body中加参数使用get。

posted @ 2021-09-09 09:33  辉太狼`  阅读(164)  评论(0编辑  收藏  举报