HTTP 入门:请求方法、状态码与报文结构
HTTP 入门:请求方法、状态码与报文结构
HTTP 是浏览器和服务器之间沟通的协议,基于请求-响应模型,本身是无状态的(每次请求互不认识,靠 Cookie 补身份)。
报文长什么样
请求报文:请求行 + 请求头 + 空行 + 请求体
POST /api/login HTTP/1.1
Host: localhost:3000
Content-Type: application/json
{"username":"admin","password":"123456"}
响应报文:状态行 + 响应头 + 空行 + 响应体
HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: token=xxx; HttpOnly
{"id":1,"username":"admin"}
请求方法
| 方法 | 语义 | 有没有请求体 |
|---|---|---|
| GET | 查询资源 | 一般没有,参数在 URL |
| POST | 创建/提交数据 | 有 |
| PUT | 全量更新 | 有 |
| PATCH | 局部更新 | 有 |
| DELETE | 删除 | 一般没有 |
GET 参数暴露在 URL 里,有长度限制且会被历史记录留存,密码等敏感信息绝不能放 GET。GET 请求可以被浏览器缓存、收藏,POST 不会。
状态码分类
- 2xx 成功:200 OK、201 Created、204 No Content
- 3xx 重定向:301 永久重定向、302 临时重定向、304 Not Modified(走缓存)
- 4xx 客户端错误:400 参数错误、401 未登录、403 无权限、404 不存在、429 请求太频繁
- 5xx 服务端错误:500 内部错误、502 网关错误、503 服务不可用、504 网关超时
面试常问:401 和 403 的区别——401 是"没认证",403 是"认证了但没权限"。联调时先看状态码大类,再看响应体里的 message,定位问题会快很多。
看到这里了?如果这篇文章帮到过你
请我喝瓶可乐就好 🥤

评论0 条
还没有评论,来抢沙发~