这是我参与「第四届青训营 」笔记创作活动的的第8天
重点
- HTTP流程和定义
- HTTP结构和对应内容
- HTTP常见场景:静态资源 登录
- HTTP的实际应用
HTTP
初识HTTP
流程
什么是HTTP
- Hyper Text Transfer Protpcol超文本传输协议
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可拓展
- 无状态
每个请求都对应一个响应 (上图为请求 下图响应)
协议分析
发展过程
报文 结构
Method方法
Method的一些特点:
Safe安全:不会修改服务器的数据的方法 如GET HEAD OPTIONS
Idempotent:同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也一样 所有safe方法都是idmpotent的。 如 GET HEAD OPTIONS PUT DELETE
Statuscode状态码
RESTful API(不属于报文结构)
这里资源指动物园
Headers
常用请求头
常用响应头
缓存
分为强缓存和协商缓存
强缓存:如果本地有 则直接用,Expires和cache-cntrol协议头(请求头)
协商缓存:本地有个缓存 需要和server进行彼此验证 来看是否能用,有个协商过程。Etag last-modified为响应头,/后面为对应的请求头
处理缓存的过程
Cookies
HTTP2
每个帧交错发送
流控制:如当你看视频 按下暂停键后 停止接受后续视频的数据 改向更高优先级的数据 如你正在聊天
服务器推送:需要frame1,发现frame1使用了frame2,frame4,在对方需要frame1时同时推送frame2 frame4
HTTPS
HTTPS 对称和非对称都有
常见场景
静态资源
打开index开头css结尾的文件
状态码200一定发送了请求吗(走完整个流程)?
from(disk)cache表面时本地缓存
cache control 表明是强缓存,max age秒换成年是一年
access-control-allow-origin:* 所有origin来源都可以访问
content-type css文件
CDN保障就近性,文件名hash保障拿到的是最新文件
文件名hash:如index.xxxx.css 当中间xxxx不一样时 则会去获取最新的
登录
METHOD一个为OPTIONS,一个为POST
options-跨域
POST
accpt:接受的格式为json
set-cookie:httponly加强安全性
第一种 server在本地存储,第二种server不存储token直接返回,token有一定的格式
大部分用第一种,第二种具有唯一性 且适合登陆时间快
跳转后自动登录
实际应用
浏览器里的应用
AJAX之XHR
fetch
node应用
标准库HTTP/HTTPS
请求库axios
用户体验
网络优化
稳定性
了解更多
通信方式
基于QUIC,不基于TCP
总结
这节课讲了HTTP协议 每部分的结构及对应含义,以及它的常见场景和实际应用。内容较多 需要慢慢消化