get和post区别,面试中经典答法 - CodeAntenna
面试常被问到HTTP中GET与POST的区别
- POST和GET都是Http协议中的两种发送请求的方法,Http是基于TCP/IP协议的,Http协议只是一种行为准则。
- GET的参数在URL中,POST是通过request body传递参数;
- GET请求会被浏览器主动cache,而POST不会,这个决定5的区别
- GET请求参数会被完整保留在浏览器历史记录中,POST中的参数不会被保留;
- GET在浏览器回退时是无害的[GET将请求参数放在请求的URL中,回退操作浏览器会从之前的缓存中取结果],而POST会再次提交请求;
- GET比POST更不安全,因为参数跟在URL上;
- 参数的数据类型上:GET只接受ASCII字符,而POST没有限制
- GET产生一个tcp数据包,POST产生两个tcp数据包。GET将http header和data一起发送出去,服务器响应200并返回数据。而POST则是将http header先发出去,服务器响应100,浏览器再发送data,服务器响应返回数据。GET比POST更高效,但是在网络较差时,两次包的POST在验证数据包完整性上,有较大优势。
GET请求实例
GET http://weibo.com/signup/signup.php?inviteCode=2388493434Host: weibo.comAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
POST请求实例
``` POST /inventory-check.cgi HTTP/1.1 Host: www.joes-hardware.com Content-Type: text/plain Content-length: 18
item=bandsaw 2647 ```
