Skip to content

GET&POST的区别 #28

Description

@Ben-yby

浏览器的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的区别参考链接

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions