HTTP协议中定义了浏览器和服务器进行交互的不同方法,基本方法有4种,分别是GET,POST,PUT,DELETE。这四种方法可以理解为,对服务器资源的查,改,增,删。但是,现在大家都不这么干了! 只用一个方式就可以做增删查减的操作。
GET:从服务器上获取数据,也就是所谓的查,仅仅是获取服务器资源,不进行修改。
POST:向服务器提交数据,这就涉及到了数据的更新,也就是更改服务器的数据。
PUT:PUT的英文含义是放置,也就是向服务器新添加数据,就是所谓的增。
DELETE:从字面意思也能看出,这种方式就是删除服务器数据的过程。
get和post的区别
①get会把参数放在url的后面 post不会,所以post安全性更好一点
②get参数大小有限制(通常在2kb左右),post请求却没有限制
( 1)http协议并未规定get和post的长度限制
(2)get的最大长度限制是因为浏览器和web服务器限制了URL的长度
(3)不同的浏览器和web服务器,限制的最大长度不一样
③get请求没有请求体;post请求有请求体 请求参数放在请求体中
一般使用post上传数据
④GET在浏览器回退时是无害的,而POST会再次提交请求
⑤GET请求会被浏览器主动cache,而POST不会,除非手动设置。
⑥GET请求只能进行url编码,而POST支持多种编码方式。
⑦GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
⑧GET只接受ASCII字符的参数的数据类型,而POST没有限制
⑨get请求比post要快
为什么呢?
HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接GET产生一个TCP数据包;POST产生两个TCP数据包。(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据))