GET vs POST

两种HTTP请求方法:GET和POST
在客户机和服务器之间进行请求-相应时,两种最常被用到的方法是:GET 和 POST

  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要被处理的数据

GET 方法

查询字符串(名称/值对)是在GET请求的URL中发送的:

/test/demo_form.asp?name1=value1&name2=value2

有关GET 请求的其他一些注释:

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据

POST 方法

查询字符串(名称/值对)是在POST请求的HTTP消息主题中发送:

POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

有关POST请求的其他一些注释

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器记录中
  • POST 请求不能被收藏为书签
  • POST 请求对数据长度没有要求

比较GET 和 POST

下面的表格比较了两种HTTP方法:GET 和POST

操作 GET POST
后退按钮/刷新 无害 数据会被重新提交
书签 可收藏为书签 不可收藏为书签
缓存 能被缓存 不能缓存
编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
历史 参数保留在浏览器历史中 参数不会保存在浏览器历史中
对数据长度的限制 是的。当发送数据时,GET方法向URL添加数据;URL的长度是受限制的(URL的最大长度是2048个字符) 无限制
对数据类型的限制 只允许ASCII字符 没有限制,也允许二进制数据
安全性 与POST相比,GET 的安全性较差,因为所发送的数据是URL的一部分 POST 比GET 更安全,因为参数不会被保存在浏览器历史或web服务器日志中
可见性 数据在URL中对所有人都是可见的 数据不会显示在URL中
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP 方法:GET 对比 POST 什么是 HTTP? 超文本传输协议(HTTP)的设计目的是保证客户机与服务...
    逑熙阅读 545评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,238评论 19 139
  • 工作中,最常用的两个HTTP的Method:GET、POST。用大白话说,GET用于“获取”数据(即“读”),PO...
    NoteCode阅读 459评论 0 0
  • 其实真的特别想在微信里发好多东西,发自己干了什么,发自己的心情啊,吐槽啊,不满啊,开心不开心啊,奇葩的事啊,逗比搞...
    一个神经质的疯子阅读 175评论 0 0
  • 生活的意义在于诗跟远方,而最近一段时间都在忙于写诗当中,因为好的文章尚且暂时写不出来,而诗呢,不用像文章的篇幅那么...
    鱼泡泡儿阅读 705评论 10 12