一 .有哪些请求方式
get
post
put
delete
copy
patch
head
options
link
unlink
lock
二.GET请求和POST请求的区别
(1).get请求一般用于获取数据,post请求一般用于需要发数据到后台时使用
(2).get请求的参数,会放在url上,所以安全性,隐私性会比较差,post请求的参数会放在request.body中,比较的安全
(3).get请求不受到刷新,回退的影响,post请求则会在网页回退或者刷新后,重新进行发送
(4).get请求会被缓存,post请求不会被缓存
(5).get请求会被记录在浏览器的历史记录中,post请求则不会被记录
(6).get请求可以被收藏为标签,post不能被收藏为标签
(7).get请求只能进行url编码,post请求则支持多种编码
(8).get请求通常通过url地址栏请求,post通常通过表单发送数据请求
三.深入了解
get请求和post请求都是http的请求,底层都是tcp/ip协议,一般情况下(取决于客户端的请求策略),get请求只会产生一个数据包,而post请求会产生两个数据包(但是比如firefox只会产生一个)
get请求的过程:(header和data一起发过去,直接响应200)
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据(第三次握手,发送header和data)
(4)服务器返回200 OK响应
post请求的过程:(header先发,获得100码后,再发送data)
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,发送header 去探探路,避免资源浪费)
(4)服务器返回100 Continue响应
(5)浏览器发送数据(data)
(6)服务器返回200 OK响应