HTTP在浏览器网络中的位置
如何在控制台中查看HTTP协议的版本?
- HTTP请求/响应 起始行中带有协议版本
- 控制台每条请求的Protocol属性(http/1.1 h2)
常用的请求类型
状态码
常用状态码
101:HTTP—> Websokcet
200:成功
206:返回部分内容
301:永久重定向
302:临时重定向
304:协商缓存
400:错误请求
403:服务器禁止访问该资源(比如是法律信息、信息敏感)
404:找不到该资源
413:请求实体过大(eg:上传的文件太大)
500: 服务器内部错误
502:访问出错
503:服务器当前很忙,无法响应
URL
Cookie
cookie如果越来越大怎么办?
只存储一些必要的信息
cookie的安全策略
- path
- domain
- expires
- secure
- httponly
- samesite
常见的几种提交的数据类型:
- application/x-www-form-urlencoded
- multipart/form-data
- application/json
- text/xml
性能优化:
- keep-alive
- 减少网络传输大小
- 缓存
- http2/http3
-
keep-alive:
-
减少网络传输大小
开启压缩,gzip等
一般压缩文本资源
大约减少60% -
缓存
304:只返回响应头,没有对应的实体内容,实体内容从缓存里面读取
与之相关的两个头信息:
- Last-Modified
- Etag(HTTP1.1引入)
Last-Modified存在的问题:
日期服务端可能是不准的
Last-Modified协商缓存
Expires强制缓存 (日期) ==>升级为cache-control(解决了expires日期的问题)
- localStorage
- ServiceWorker
能够拦截请求
HTTP2/3
- HTTP2
- 二进制传输
- 多路复用
- 头部压缩
- server push
- HTTP3
基于QUIC协议(UDP)
HTTP抓包和发包工具