Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GET&POST的区别 #28

Open
Ben-yby opened this issue Dec 23, 2020 · 0 comments
Open

GET&POST的区别 #28

Ben-yby opened this issue Dec 23, 2020 · 0 comments

Comments

@Ben-yby
Copy link
Owner

Ben-yby commented Dec 23, 2020

浏览器的GET&POST的区别

区别 header 2 POST
后退按钮/刷新 无害 数据会被重新提交
书签 可收藏为书签 不可收藏为书签
缓存 能被缓存 不能缓存
编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
历史 参数保留在浏览器历史中 参数不会保存在浏览器历史中
对数据长度的限制 当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(浏览器或客户端或服务端限制) 无限制
对数据类型的限制 只允许 ASCII 字符 无限制
安全性 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分 POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中
可见性 数据在 URL 中对所有人都是可见的 数据不会显示在 URL 中

传输层的区别

  • GET和POST只是HTTP协议中的两种请求方式,而HTTP协议之基于TCP/IP的应用层协议,无论POST和GET都是用同一个传输层协议,所以传输上没有区别。
  • 从HTTP协议本身看,并没有什么限制说GET一定不能没有body,POST就一定不能把参放到的querystring上
  • GET和POST能做的事情是一样的,只要给GET加上request body,给POST加上url参数,技术上完全是行得通的。

所以get和post有什么区别?

  • 参数的位置、参数传递的安全性、参数是否可缓存、参数的编码方式……这些都是在使用习惯上的区别;
  • 在HTTP协议的RPC说明中,规范下的区别主要在于语义下的区别:GET用于获取资源,POST用于处理资源;
  • 实质上,这也引出两者在HTTP协议下的METHOD特性方面的区别:
  1. 安全(是否改变服务器状态)
  2. 幂等(重复提交是否造成意外效果)
  3. 可缓存性。

GET&POST的区别参考链接

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant