get&post的区别

Posted yangqiong1989

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了get&post的区别相关的知识,希望对你有一定的参考价值。


get
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制 ,大多数浏览器通常都会限制url长度在2K个字节
GET 请求只应当用于取回数据
只接受ASCII字符的参数的数据类型
get效率高
post
查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求
POST支持多种编码方式
为什么get比post效率高
**[最重要原因]**post在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据
post 请求过程
1.浏览器请求tcp连接(第一次握手)
2.服务器答应进行tcp连接(第二次握手)
3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
4.服务器返回100 continue响应
5.浏览器开始发送数据
6.服务器返回200 ok响应
get 请求过程
1.浏览器请求tcp连接(第一次握手)
2.服务器答应进行tcp连接(第二次握手)
3.浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
4.服务器返回200 ok响应
get会将数据缓存起来,而post不会。
ps:chrome下和firefox下如果检测到get请求的是静态资源,则会缓存,如果是数据,则不缓存,但是IE这个傻X啥都会缓存起来
post请求包含更多的请求头
post不能进行管道化传输

以上是关于get&post的区别的主要内容,如果未能解决你的问题,请参考以下文章

GET和POST的区别

get和post的区别

post和get传值的区别

前端面试题常考&必考之--http中的post和get的区别

Get和Post区别?

get请求和post请求的区别