GET请求和POST请求是什么?
首先GET和POST都是HTTP协议中的两种请求服务器的方式本质上来说并无区别底层都是基于TCP/IP协议栈实现的
GET请求和POST请求的区别:
-
GET请求在请求行上提交数据,这种提交方式最终提交的数据会显示在浏览器的地址栏上
POST请求在请求体上提交数据,不会在浏览器的地址栏上显示提交的数据 -
GET请求在请求行上提交数据,所以数据的大小有限制而且数据的格式也只能是字符串形式
POST请求在请求体中提交数据所以提交的数据大小没有限制而且数据的格式也没有限制可以是图片视频和其他的文件类型 -
GET请求提交的数据会显示在浏览器的地址栏上所以不安全而且没有私密性
POST请求数据不会显示在地址栏上所以相对安全而且比较私密 -
GET请求的最终结果会被浏览器缓存而POST请求的结果不会被缓存因为GET请求一般都是为了读取服务器的资源而POST请求一般用于修改服务器资源没必要将结果进行缓存
-
GET请求的参数会保存在浏览器历史中
POST请求的参数不会被保存在浏览器历史中 -
GET请求之后点击刷新和浏览器的后退按钮不会对请求有影响
POST请求点击刷新和浏览器的后退按钮之后数据会被重新提交给服务器 -
GET请求会产生一个TCP数据包,浏览器会把HTTP的header和data一起发送到服务器段服务器响应200 然后服务器返回数据
POST请求会产生两个TCP数据包,浏览器会先发送一个HTTP的header到服务器,服务器响应100continue然后浏览器会再发一个dataTCP数据包服务器响应200 ok 然后服务器返回数据