怎样模仿别人的网站南昌网站seo
趣解Post&Get请求的原理、应用场景及区别
POST 和 GET 的「身份之谜」:快递员与侦探的终极对决
一、角色设定:快递员(POST) vs 侦探(GET)
-
GET(侦探):
任务:「找东西」
特点:轻装上阵,目标明确,所有线索(参数)直接写在信封(URL)上。
例如:https://www.example.com/search?keyword=黑科技
- 原理:像侦探公开翻找线索,数据直接暴露在地址栏。
- 安全性:相当于在信封上写「我要偷听机密」,易被窃取(浏览器历史、服务器日志)。
-
POST(快递员):
任务:「送包裹」
特点:负重前行,隐秘行动,包裹(请求体)藏在卡车(HTTP Body)里。
例如:用户登录时,密码藏在加密包裹中。- 原理:像快递员将物品打包后秘密运输,数据不暴露在URL。
- 安全性:虽隐秘,但若卡车被劫(未用HTTPS),包裹仍可能被盗。
二、使用场景:谁该接什么活?
1. GET 的「侦探事务所」
- 业务范围:
- 搜索商品(
/search?q=手机
) - 翻页浏览(
/news?page=2
) - 获取公开数据(天气预报API)
- 搜索商品(
- 招牌技能:
- 可被缓存(侦探记录常用线索)
- 支持书签收藏(保存完整搜索链接)
- 长度限制(URL最长约2KB,像侦探的笔记本写不下太多字)
2. POST 的「快递公司」
- 业务范围:
- 用户登录(提交账号密码)
- 上传文件(发朋友圈图片)
- 支付订单(传输银行卡信息)
- 招牌技能:
- 无长度限制(能运载大件包裹,比如高清视频)
- 支持多种数据类型(JSON、文件、二进制流)
- 不可缓存(每次送包裹都是全新任务)
三、终极对决:10秒看懂区别
对决项 | GET(侦探) | POST(快递员) |
---|---|---|
数据位置 | URL明文显示(信封封面写内容) | Body隐藏传输(包裹内部藏物品) |
安全性 | 低(信封可能被偷看) | 中(卡车可能被劫持) |
数据长度 | 有限(约2KB) | 无限(服务器说了算) |
浏览器行为 | 可收藏/刷新/回退 | 刷新/回退会弹出警告 |
典型应用 | 搜索、分页、获取数据 | 登录、支付、上传文件 |
幂等性 | 幂等(重复搜索无害) | 非幂等(重复提交可能下单两次) |
四、灵魂比喻:点餐与外卖
-
GET 像「看菜单」:
告诉服务员你要看川菜(/menu?type=川菜
),服务员直接给你菜单——简单直接,无需隐藏意图。 -
POST 像「下单外卖」:
把地址、电话、菜品藏在订单里提交,服务员收到后开始备餐——隐秘且可能触发后续操作(扣款、配送)。
五、经典翻车案例
-
用 GET 提交密码:
- 错误示例:
/login?username=张三&password=123456
- 结果:密码被浏览器历史记录,同事路过电脑一眼看光!
- 错误示例:
-
用 POST 实现搜索:
- 错误示例:用POST请求搜索「如何暴富」
- 结果:用户无法收藏搜索结果链接,每次刷新页面都弹窗警告「确认重新提交表单吗?」
六、一句话总结
「明查用 GET,暗送用 POST」
——GET 是阳光下找线索的侦探,POST 是夜幕里送包裹的快递员。
用错场景?轻则泄露隐私,重则重复扣款!