一、入门部分
1、cache-control缓存设置
max-age=100:静态资源缓存100秒
public/private:只能在客户端/代理服务器 缓存
must-revalidate:缓存过期后,到服务端验证才能继续使用缓存
-
2、缓存验证(缓存与服务器内容是否相同)
last-modified配合if-modified-since
etag配合 if-none-match
3、头部
- content-type conten-encoding:数据类型
- cookie:保持会话信息
- CORS实现跨域并保证安全
4、TCP部分
- https链接创建过程,为什么https安全
- 长链接,为什么需要
- http2的信道复用为什么能提高性能
5、输入url后http请求返回的完整过程
redirect跳转–》app cache–》DNS解析域名–》创建TCP连接–》request发送请求–》response接受响应
二、基础知识
1、五层模型
应用层(http,ftp)–传输层(TCP,UDP)–网络层–数据链路层–物理层
2、http1.1(增加一些host命令) http2
数据以二进制传输,头信息压缩和推送(服务器主动推送html,js等到客户端)提高效率。
3、http三次握手
(1)客户端C–>服务端S:发送标志位SYN=1,序列号seq=x
(2)S–>C: SYN =1, seq=y 确认号ack=x+1
(3)C–>S: seq=z ack=y+14、URI, URL,URN
URI =URL+URN 统一资源标志符: 标识互联网上的唯一资源;
URL 统一资源定位器:访问链接 基本形式:协议+主机+端口号+路径path参数
-
5、http报文
起始行: 请求方法+URL+协议版本 协议版本+状态码
-
6、http方法
7、CORS跨域
两种解决跨域请求办法
8、CORE预请求
默认允许的method请求方法:GET POST HEAD( delete等不行)
默认允许的content-type :text/plain、 multipart/form-data 、application/x-www-form-urlencoded
预请求:’Access-Control-Allow-Methods’:’PUT.POST,DELETE’ //使得预请求允许
-
9、缓存头cache-control (header中)
(1)可缓存性
public : 经过的地方(客户端和代理服务器)都可进行缓存
private:只有发起请求的浏览器可以进行缓存
no-cache:不允许缓存(本地可以有缓存,下次使用缓存需要服务器先验证)
-
(2)到期
浏览器中:max-age=<>多少秒
代理服务器中: s-maxage
服务器中:max-stale,即使浏览器中过期,max-stale不过期也能继续使用
(3)重新验证
must-revalidate:过期后必须重新到服务器端进行请求
proxy-revalidate:缓存服务器过期去原服务器请求
10、资源验证 (header中)
两种验证头
last-modified:上次修改时间 配合if-modified-since或者if-unmodified-since验证是否修改
etag 数据签名(如进行hash)配合if-match或if-none-match判断签名是否变化
11、Cookie (header中)
通过set-cookie设置,下次请求时后自动带上
cookie形式:键值对key=value id=1223,可有多个 set-cookie:[‘id-1’,’ad=2’]
cookie属性
max-age和expires设置过期时间
secure只在https中使用
-
12、session
作为会话连接,通常使用cookie的key作为session,二者不相等,
-
13、http长链接
connection:Keep-Alive 继续保持,可以复用
-
14、数据协商
(1)请求Accept
accept指定想要的数据类型
accept-encoding压缩方式:gzip ,deflate ,br(较新,压缩比高)
accept-language :’zh-CN’ ‘en’
user-Agent: 包括win10系统,浏览器内核,浏览器版本等信息
(2)服务端返回Content
Content-Type
content-encoding
content-language