首页 新闻 会员 周边

get 和post 区别

-2
[待解决问题]

一、get和post区别

1.url可见性

  get传参方式是通过地址栏URL传递,是可以直接看到get传递的参数,post传参方式参数URL不可见,get把请求的数据在URL后通过?连接,通过&进行参数分割。psot将从参数存放在HTTP的包体内

2.传输数据大小

  get传递数据是通过URL进行传递,对传递的数据长度是受到URL大小的限制,URL最大长度是2048个字符。post没有长度限制

3.后退页面

  get后退不会有影响,post后退会重新进行提交

4.缓存

  get请求可以被缓存,post不可以被缓存

5.编码方式

  get请求只URL编码,post支持多种编码方式

6.历史记录

  get请求的记录会留在历史记录中,post请求不会留在历史记录

7 字符类型

  get只支持ASCII字符,post没有字符类型限制

二、post相比较get传参方式的优点

  1.安全性比get传参方式好:

    a.存在于HTTP包中,一般不会直接被查找到

    b.post不会被浏览器进行缓存

    c.不会留在历史记录中

  (并不代表post一定安全,因为在HTTP下都是明文传输,post仍然可以被查找到,增加安全性最好使用https协议)

  2.post没有字符和编码的限制,能发送的数据类型更多

  3.post传送数据没有大小限制,比get可以发送的更多的数据

  post的缺点:速度比get传输慢,get的效率更高

三、为什么get的效率比post高

  1.post在接收返回来的数据会先将请求头发送给服务器确认,然后才真正的发送数据,(相当于第一次先向服务器打个招呼,第二次才将数据真正的发过来,get则是直接发送数据。专业的说法是,get产生一个TCP数据包,post产生两个TCP。数据包但并不是所有的浏览器post都会请求两次,火狐浏览器就会请求一次)总结起来就是请求的过程比get更多

  2.get会将数据进行缓存

高海淼个人博客的主页 高海淼个人博客 | 菜鸟二级 | 园豆:206
提问于:2019-12-30 16:06
< >
分享
所有回答(2)
0

1,2自己可以用tcp实现感受;3.不同的服务器可以不同的处理,只是通常协定,还有诸如cookie等等、keepalive等等

花飘水流兮 | 园豆:13560 (专家六级) | 2019-12-30 16:24
0

写入随笔啊

ycyzharry | 园豆:25651 (高人七级) | 2019-12-30 21:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册