-
get请求和post请求的区别?
get和post是HTTP请求的两种方式,但是他们的用法不同;
-
参数显隐式、长度、类型:get请求是将请求参数放到url中,以?来分割url,多个参数用&来连接,参数最长为2KB(协议并没有对get请求的参数长度做出限制,这是浏览器限制),请求参数的类型只能是ASSCII编码;
post请求是将请求参数放在请求体中,长度没有限制,请求参数的类型没有限制;
-
安全性:get因为将参数放在url中,参数是明文传输,所以是不安全的;post将参数放在请求体中,是安全的;
-
用法:因为安全性,get用来获取数据,post用来提交数据;
-
缓存:get请求结果返回的数据会被浏览器缓存,而post不会,除非手动设置;(当使用get请求时,返回的数据会被缓存,当再次发送这条请求时,浏览器并不会真正发送这条请求,而是从缓存中读出来,这是浏览器的决策)
有时候我们即使使用了get请求,也并不想从浏览器缓存中读取数据,这时可以在get请求参数中加入一个后端直接忽略的参数,常用的是时间戳,每次get请求都不同,这样浏览器就不会从缓存中读取数据了
-
使用get请求在刷新浏览器时不会有影响,而post请求刷新或回退会再次提交;
-
-
get请求是安全的,post请求不是安全的;
有人会问:get请求和post请求的区别中不是说get是不安全的,post是安全的吗?请注意,那里指的是get请求和post请求分别用来传递参数时,参数的安全性;而这里的安全不安全指的是get请求和post请求本身是否安全;因为get请求设计的初衷只是为了从服务端获取数据,不会对服务器造成威胁,本身是安全的,但如果非要用get来提交数据,虽然能提交,但实际上是错误用法,呈现的是不安全状态,是使用方式的问题,不是get请求的问题;
post请求是不安全的,因为会将数据传递给服务器,会对服务器造成威胁;
(面试题)HTTP中get请求和post请求的区别?
于 2022-11-13 10:01:44 首次发布
GET和POST是HTTP的两种主要请求方法。GET将参数显示在URL中,长度有限,适合获取数据,但不安全且会被缓存;POST将参数置于请求体,长度无限制,用于提交数据,相对安全。GET请求在刷新或回退时不会重新提交,而POST会。在安全性和使用场景上,GET和POST各有适用范围。
摘要由CSDN通过智能技术生成