客户端发起 => 访问服务端

便于国际化、多语言包
zh 表示中文;zh-cn 表示简体中文;en(英文);fr(法语)
常见:keep-alive(1.1之后默认) / close
面试追问:标识位置?connectId - 代表单个请求新建立的信道索引( 新建的tcp连接,都有新增的Id,可在network中右键打开查看)

面试追问方向:
a.集中缓存的对比 - cookie vs localStorage vs sessionStorage
从以下几个方面作答:
大小:storage >> cookie
性能:cookie每次请求都会携带,影响性能 => 网络性能优化
跨域:cookie无法跨域调用,需要指定一个作用域 => 跨域问题
时效性:session - 当前页面;local- 跟随浏览器(关闭浏览器,tab都不会删除);cookie - 过期时间 (根据服务端设置的过期时间,过期时间内长期有效)
跨tab共享:sessionStorage不支持跨tab;localStorage - 同源窗口支持共享;cookie - 同源窗口共享;
b. 性能监控(不同tab同步,在一个页面更新,另一个页面实时更新,或弹窗提示,检测到内容有更新,请刷新)
解决:
window.addEventListener(“storage”, e => {})
存储位置:存储在浏览器
追问:
内容包含 - 操作系统/版本、浏览器版本、设备信息(移动端)版本
兼容性
a. mode - 请求的模式
b. dest - 请求目标,如何使用获取的数据
empty / iframe / font / image
c. site - 请求发起者和资源之间的关系
cross-site: 跨域请求
same-origin: 发起方和目标一致
none

a. q值越高代表优先级越高 0= b.默认不写,优先级 q=1
c.写法: ;q=0.8
“域”(Origin)浏览器地址栏中的主机地址
“跨域” - 当前网页应用请求的主机地址与本浏览器中主机地址不同 => 我们的网页应用想要去隔壁家取资源(只有浏览器场景才会有)=> 服务端会做http转发会存在跨域问题吗? 不会
a. domain不同(域名或者ip)
b. 端口不同
c. 协议不同(http / https)
CORS - cross-origin resource sharing
满足以下两个条件
a.请求方法: HEAD GET POST
b.请求header只能包含accept、accept-language、content-language、content-type - x-www-form-urlencoded + form-data+plain
1xx 信息提示: 100 - continue、 101 - 切换
2xx 成功:200 - 请求成功、201 - 创建完成、 204 - 无内容
3xx 重定向:301 - 永久重定向 / 302 - 对象已移动 / 304 - 资源未修改 / 307 - 临时重定向
301 vs 302 => 跳转
302 - 短链接转长链接 => 点击短链接 => 对象已移动 => 浏览器自动跳转到长链接
302 vs 304 => 缓存
a. 强缓存 => 不给服务端发请求 => 返回200状态码 并且 标识 from cache(从缓存中获取)
b. 协商缓存 => 由服务端参考决定是否缓存(客户端与服务端发生一次通信,如果命中协商缓存,服务器会返回304)
对比:
强缓存 根据=> Expires(资源失效的时间) + cache-control(1.1的规范)/ max-age=3600(s)
=> 同时存在时优先级:cache-control > Expires
协商缓存 => Last-Modified(当前资源最后修改时间) + If-modified-Since + ETag => ETag计算会有性能损耗
(待更新:websocket => 扫码 => 性能)