Http协议中的get和post两种请求方法的区别

get和post的区别


区别就是一个词:
        ~~~~~~~ 大同小异(本质上来说都是TCP链接,并无区别;但具体的格式、规定限制又有所不同)。

具体如下:

1.本质

GETPOST是什么?
        ~~~~~~~ HTTP协议中的两种发送请求的方法。

HTTP协议是什么?
        ~~~~~~~ HTTP是基于TCP/IP的网络传输的应用层协议。

可以看到实际都是同一个传输层协议,都是TCP链接,无实质区别。

2.区别

  • 报文格式上:
            ~~~~~~~ 不带参数时,区别只是请求行的前几个字符(方法名)不同;
            ~~~~~~~ 带参数时,get方法的参数应该放在 url 中(参数是写在 ? 后面,用 & 分割),post方法参数应该放在请求体(body)中。
    如果服务器支持,在post请求的url中写上参数,在get请求的body中写上参数,也是可以的,这样二者就在格式上没有区别了,只不过get方法不能保证body一定能被接收。

在此处将引出来一个问题:
post 方法比 get 方法安全?
post比get安全体现在数据在地址栏(url)不可见,这是显示表现;从传输的角度来说,都是不安全的,HTTP 在网络上是明文传输的,只要在网络节点上抓包,就能完整地获取数据报文。要起安全就只有加密,也就是 HTTPS。

  • 使用上:
            ~~~~~~~ 与post相比,get更简单也更快,并且在大部分情况下都能用。但在以下情况中,请使用 POST 请求:
    (1) 无法使用缓存文件(更新服务器上的文件或数据库)
    (2) 向服务器发送大量数据(post没有数据量限制,url的最大长度为2048个字符)
    (3) 发送包含未知字符的用户输入时,post比get更稳定也更可靠(get方法数据类型只能是ASCII字符)
发布了27 篇原创文章 · 获赞 4 · 访问量 1030

猜你喜欢

转载自blog.csdn.net/Lb_CsdnJava/article/details/104250446