一 .有哪些请求方式

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响应