详情见语雀:https://www.yuque.com/zaygee/tvg571/pnyqpr
1.url传参
get请求把参数放在url上,post请求则是把请求参数放在request body 里面
2.数据传输
get请求过程(GET产生一个TCP数据包):
-
-
- 浏览器请求tcp连接,即第一次握手
- 服务器应答进行tcp连接,即第二次握手
- 浏览器确认,发送get请求头和数据,即第三次握手
- 服务器返回200 ok响应
-
post请求过程(POST产生两个TCP数据包):
-
-
- 浏览器请求tcp链接,即第一次握手
- 服务器应答进行tcp连接,即第二次握手
- 服务器确认,发送post请求头,即第三次握手
- 服务器返回100 Continue响应
- 浏览器发送数据
- 服务器返回200 ok响应
-
3.缓存性
get请求可以缓存
post请求无法缓存
4.安全性
post请求相对来说会比get请求安全
5.页面回退
get请求回退无影响
post请求回退需要重新提交数据
6.数据类型
get请求url只接受ASCII字符的参数
post请求没有限制
误区:get请求url有长度限制?
原则长,get请求和post请求本质都是tcp链接,http本身是没有对get请求url的长度进行限制,一般是web浏览器会对url的长度有所限制,浏览器通常都会限制url长度在2K个字节