计算机网络面试题
1. get 请求和 post 请求的区别?
一、核心区别(大白话 + 对比表)
| 特性 | GET 请求 | POST 请求 |
|---|---|---|
| 数据传递方式 | 数据附在 URL 后面(可见) | 数据放在请求体里(不可见) |
| 数据大小限制 | 受浏览器 / 服务器限制(通常几 KB) | 无明确限制(可传大文件 / 大量数据) |
| 安全性 | 低(URL 明文传输,易被截取) | 高(请求体传输,相对隐蔽) |
| 请求类型 | 幂等(多次请求结果一致,无副作用) | 非幂等(多次请求可能有副作用) |
| 缓存 | 可被浏览器缓存(如刷新不重新请求) | 默认不缓存 |
| 使用场景 | 查数据(无修改) | 改数据(增 / 删 / 改) |
二、通俗拆解(举例子)
数据传递方式(最直观区别)
- GET:比如访问
https://www.xxx.com/user?id=100&name=张三,?后面的id=100&name=张三就是传递的数据,直接显示在地址栏,所有人都能看到; - POST:同样传
id=100&name=张三,数据藏在请求 “后台”(请求体),地址栏看不到,只有服务器能接收到。
2. 幂等性(关键理解)
- GET 幂等:比如刷新 “查询商品列表” 的页面,多次刷新结果一样,不会改变数据(只是查);
- POST 非幂等:比如点击 “提交订单” 按钮,多次点击可能创建多个订单(会改数据),所以电商网站会做防重复提交处理。
3. 实际使用场景
- GET:查数据(如搜索商品、查看用户信息、分页列表)、传简单筛选条件;
- POST:提交表单(如登录、注册)、上传文件、创建 / 修改 / 删除数据(如新增订单、修改密码)。
