平时用手机App查天气、刷微博,或者在网页上登录账号,背后其实都在跟服务器“对话”。这种对话靠的不是打电话,而是一种叫API的东西。简单说,API就是程序之间沟通的桥梁,而怎么发起这个沟通,就得靠不同的网络API请求方式。
最常见的几种请求方式
说到API请求,最常见的是GET和POST,就像寄信和寄包裹的区别。
GET请求,就像是你去问服务器:“嘿,有没有今天的新闻?” 它把所有信息都写在URL后面,比如 https://api.example.com/news?id=123。这种方式适合获取数据,但不能传太多内容,毕竟URL太长了浏览器也不认。
GET /news?id=123 HTTP/1.1\nHost: api.example.com
POST请求就不同了,它不把数据挂在URL上,而是悄悄放在请求体里。比如你登录账号,用户名密码总不能明晃晃写在地址栏吧?这时候就用POST,安全又灵活。
POST /login HTTP/1.1\nHost: api.example.com\nContent-Type: application/x-www-form-urlencoded\n\nusername=zhangsan&password=123456
其他常用的请求方式
除了GET和POST,还有几个也经常露脸。
PUT请求一般用来更新整个资源。比如你改了个人资料,点保存时,可能就是一条PUT请求飞向服务器,意思是:“把我整个信息换成这些”。
DELETE就更直白了,顾名思义,删数据用的。比如你在后台管理系统点了个“删除用户”,背后很可能就是一条DELETE请求。
PATCH和PUT有点像,但它只更新一部分。比如你只改了个头像,没必要把整个资料重传一遍,PATCH就能做到“局部更新”。
实际场景中的选择
举个例子,你在做一个小项目,要做个待办事项列表。查看所有任务用GET,新增一个用POST,修改某条用PUT或PATCH,删除就用DELETE。每个动作对应一种请求方式,清晰又有条理。
浏览器默认支持GET和POST最多,像PUT、DELETE这些,在前端开发中通常得靠JavaScript的fetch或axios来发。比如用fetch发一个DELETE请求:
fetch('/api/todos/5', {\n method: 'DELETE'\n})\n.then(response => response.json())\n.then(data => console.log(data));
很多人刚开始容易混淆GET和POST,记住一点就行:想拿数据,用GET;要传敏感或大量数据,用POST。其他的根据操作类型选就好。
现在的网站和App,几乎全靠API撑起来。了解这些请求方式,哪怕不写代码,也能大概明白点按钮背后发生了什么。下次看到页面刷新,你可以想想,是不是有条GET请求刚跑完一圈?