理解GET和POST

前言


昨天帮一位同学解决网络请求的问题,发给我个接口http://www.cego168.com/mobile/iosinterface.php?act=upload&name=jay&mobile=110,用来上传联系人的姓名和手机号。乍一看瞬间有些懵,这不是GET请求吗,这怎么去上传呢,之前在开发中请求提交或者修改等操作都是用的POST请求,也就是我们常见的像这种:

URL:        http://www.cego168.com/mobile/iosinterface.php
paramters:  act=upload&name=jay&mobile=110

URL和参数是分开的,一直以来我都以为GET是用来获取数据的,POST是用来提交修改数据的。带着这个困惑查阅了国内外众多资料,从HTTP到GET和POST,个人总结了一些见解,请往下看:

GET请求

向指定的资源发出“显示”请求,GET应该是安全的且是幂等的。
注: 这里仅对“安全”做下介绍,“幂等”比较难理解,有兴趣的同学可以查下,在此先不介绍

(HTTP协议声明,对于GET方法而言,除了进行获取资源信息外,这些请求不应当再有其他意义。也就是说,这些方法应当被认为是“安全的”。 客户端可能会使用其他“非安全”方法,例如POST,PUT及DELETE,应该以特殊的方式(通常是按钮而不是超链接)告知客户可能的后果(例如一个按钮控制的资金交易),或请求的操作可能是不安全的(例如某个文件将被上传或删除)。
但是,不能想当然地认为服务器在处理某个GET请求时不会产生任何副作用。事实上,很多动态资源会把这作为其特性。这里重要的区别在于用户并没有请求这一副作用,因此不应由用户为这些副作用承担责任。)

上面这一大段话的意思就是,GET请求应该是一些展示类的信息,比如说今日头条获取新闻的展示信息,而每天这些新闻有可能发生变化,这时候请求应该是用GET的。然后用户可能会去参与评论,留言自己的一些观点吐槽等,这时候就应该是POST的方式去提交信息(稍后会介绍下POST的作用和特点),所以总结下来,GET请求应该满足以下特点:

  • GET 向服务器发送索取数据的请求
  • GET 将请求数据放在URL中 (如:/test/demo_form.asp?name1=value1&name2=value2)
  • GET 请求理论上无长度限制 (URL不存在参数上限的问题,例如限制1024字节是特定的浏览器及服务器对它的限制)
  • GET 请求不应在处理敏感数据时使用(用户提交信息,账号、密码等)
  • GET 请求只应当用于取回数据 (获取展示类的列表如新闻列表等)
  • GET 请求的数据在 URL 中对所有人都是可见的
  • GET 能够被缓存 (这就会导致某个你输完账号密码后登陆的界面被缓存,其他人查看游览器的历史记录就可以拿到你的账号密码了)

通过以上这些特点我们在平常开发中就能知道哪些场景中应该用GET请求了。下面再说下POST请求:

POST请求

向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件),数据被包含在请求本文中。


  • POST 向服务器提交数据的一种请求
  • POST 将请求数据放在消息体中
  • POST 请求理论上也无长度限制,起限制作用的是服务器的处理程序的处理能力
  • POST 请求不会被缓存
  • POST 数据不会显示在 URL 中
  • POST 安全性比GET高(因为请求参数不在URL中并且无法被缓存,所以参数不会被保存在浏览器历史或 web 服务器日志中)

综合以上所有特点,以及相应的一些介绍,大致可以总结出:
GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
但是许多人会在更新资源时使用GET,而这样是不合理的,所以上面这个同学发的这个接口,合理的做法是POST请求去更新数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容