get和post请求的区别

Z, ZLW 2474

get和post请求的区别有:安全性不同、编码类型(enctype 属性)不同、表单数据长度不同、添加书签不同、数据可变大小、缓存不同、主要作用不同、能见度不同、发送的数据数量不同、可用性不同,此外,post请求比get请求安全。

1、安全性不同

get请求:GET 方法发送的数据不受保护,因为数据在 URL 栏中公开,它以明文形式保存在浏览器历史记录和服务器日志中,这增加了漏洞和黑客攻击的风险。

post请求:POST 方法发送的数据是安全的,因为数据未在 URL 栏中公开,参数不会存储在浏览器历史记录或 Web 服务器日志中,还可以在其中使用多种编码技术,这使其具有弹性。

2、编码类型(enctype 属性)不同

get请求:application/x-www-form-urlencoded。在表单中使用 GET 方法时,数据类型中只接受 ASCII 字符。

post请求:multipart/form-data or application/x-www-form-urlencoded 对二进制数据使用多部分编码。在表单提交时,POST 方法不绑定表单数据类型,并允许二进制和 ASCII 字符。

3、表单数据长度不同

get请求:表单数据位于 URL 中,并且 URL 长度受到限制。安全 URL 长度限制通常为 2048 个字符,但因浏览器和 Web 服务器而异。

post请求:无限制。

4、添加书签不同

get请求:GET 查询的结果可以加入书签中,因为它以 URL 的形式存在。

post请求:POST 查询的结果无法加入书签中。

5、数据可变大小

get请求:GET 方法中的可变大小约为 2000 个字符。

post请求:POST 方法最多允许 8 Mb 的可变大小。

6、缓存不同

get请求:GET 方法的数据是可缓存的。

post请求:POST 方法的数据是无法缓存的。

7、主要作用不同

get请求:GET 方法主要用于获取信息。

post请求:POST 方法主要用于更新数据。

8、能见度不同

get请求:GET方法对每个人都是可见的(它将显示在浏览器的地址栏中),并且对要发送的信息量有限制。

post请求:POST 方法变量不会显示在 URL 中。

9、发送的数据数量不同

get请求:在 GET 中,只能发送有限数量的数据,因为数据是在 URL 中发送的。

post请求:在 POST 中,可以发送大量的数据,因为数据是在正文主体中发送的。

10、可用性不同

get请求:发送密码或其他敏感信息时,不应使用 GET 方法。

post请求:发送密码或其他敏感信息时应使用 POST 方法。

拓展阅读

post请求的过程

  • 浏览器请求tcp连接(第一次握手)
  • 服务器答应进行tcp连接(第二次握手)
  • 浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  • 服务器返回100 Continue响应
  • 浏览器发送数据
  • 服务器返回200 OK响应

get请求的过程

  • 浏览器请求tcp连接(第一次握手)
  • 服务器答应进行tcp连接(第二次握手)
  • 浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
  • 服务器返回200 OK响应

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部