前端星计划之前端常用的HTTP知识
分类:
文章
•
2025-03-30 12:46:33
- HTTP在浏览器网络中的位置
- HTTP是应用层协议,负责请求和响应,联网细节交给了传输协议:TCP/UDP
- 请求/响应报文
- 请求报文
<method><request-URL><version> <headers> <entity-body>
- 响应报文
<version><status><respon-phrase><headers><entity-body>
- 请求类型
- GET(获取资源)
- POST(提交资源)
- PUT(更新资源)
- DELETE(删除资源)
- OPTIONS(跨域是否有权限)
- HEAD(只返回head)
- PATCH(更新部分内容)
- 状态码
- 1xx:请求已接收
- 2xx:请求已正确处理
- 3xx:重定向
- 301 永久重定向,例如资源更换路径
- 302 临时重定向,例如跳转到登录页面
- 304 资源未修改,直接读取缓存
- 4xx:客户端错误
- 400 错误请求
- 403 拒绝执行,无访问权限
- 404 资源找不到
- 413 请求实体过大
- 5xx:服务端错误
- 500 服务端内部错误
- 502 作为网关或代理服务器时,上游服务器异常
- 504 作为网关或代理服务器时,上游服务器处理超时
- URL规范
- Header分类
- 通用:Date,Connection
- 请求
- 响应:Last-Modified
- 实体
- 扩展(自定义)
- Cookie
- 标识用户身份
- 响应时set-cookie(键值对形式,对cookie做一些设置:expires,domain,path,samesite),请求时带上cookie
- 响应头可以有多个Set-Cookie
- Cookie安全策略
- 与expires,domain,path,samesite等规则有关
- 匹配才会携带cookie
- XSS盗取Cookie,设置httponly
- CSRF,设置token/samesite
- session
- 服务侧对应为session,基于cookie存放用户信息
- cookie可设置有效期为session,浏览器退出即删除
- content-type:标识资源返回类型/资源提交类型
- 浏览器根据类型解析
- 提交类型
- application/x-www-form-urlcoded(键值对形式)
- multipart/form-data(文件上传)
- application/json
- text/xml
- 性能优化
- keep-alive
- 减少网络传输大小
- 缓存
- Last-Modified:协商缓存
- ETag:协商缓存
- Expires:强缓存,过期之前从这里读取
- Cache-Control:设置缓存规则
- LocalStorage
- ServiceWorker
- HTTP2/3
- HTTP2
- 二进制传输
- 多路复用
- 头部压缩
- server push
- HTTP3