http、https流程以及版本区别
从输入url后按下回车开始
因为可能记录了地址 看是否要redirect 因为可能记录了永久跳转成新的地址
再看缓存 没有缓存再去服务器 首先查找DNS
创建TCP连接
发送http请求数据包
返回响应数据 结束接受返回
http/0.9
只有get
没有header等描述数据的信息
服务器发送完毕就关闭TCP连接
http/1.0
增加了post header put等命令
增加了status code 和 header
增加多字符集支持、多部分发送、权限、缓存
http/1.1
支持持久连接 一个http请求 会创建tcp不关闭
增加了pipeline 可以再同一个连接发送多个请求
增加了host和其他命令 host可以同一个集群部署多个服务
http2
所有数据二进制传输
同一个连接里面发送多个请求不需要按照顺序来
头信息压缩以及推送等提高效率的功能
(之前都是客户端主动发送请求,服务器被动,现在可以服务器主动推送)
就是为了解决传输性能不足的问题
uniform resource identifier
URI 统一资源标识符 包括 URL URN
uniform resource locator 统一资源定位器
urn 永久统一资源定位符 防止连接换位置导致404notfound
目前没有非常成熟的解决方案
首部--> 主题之间有一个空行
常用GET POST 方法
code 就是 404 200 301 501 等
下载一个nodejs.org
使用node -v
使用windows命令行工具
git-scm.com/download/win
cache-control
可缓存性
public 任何人都可以缓存
private 只有发起请求的浏览器
no-cache
cookie
服务端 通过 set-cookie设置
下次请求自动带上 可以设置很多键值对
属性:
max-age 和expires 设置过期时间
secure只在https时候发送
HttpOnly无法通过document.cookie访问
HTTPS
私钥 只放在服务器上
公钥
过程是:客户端发送生成的随机数和加密套件(支持加密的算法供选择)
服务器生成随机数并且把公钥(证书)和选择的加密算法发送给客户端
客户端通过证书(公钥)生成预主秘钥(一个新的随机数,总共有三个,并且用公钥加密了)发送给服务器
然后服务器由自己的私钥解密预主秘钥
这时双方选择同一个加密套件根据三个随机数生成主**,这时开始传输由主**加密的数据
HTTP2
信道复用
信道复用即频分复用(FDM,Frequency Division Multiplexing),就是将用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号。要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带,这样就保证了各路信号互不干扰(条件之一)。特点是所有子信道传输的信号以并行的方式工作,每一路信号传输时可不考虑传输时延,因而频分复用技术取得了非常广泛的应用。频分复用技术除传统意义上的频分复用(FDM)外,还有一种是正交频分复用(OFDM)。
中文名
分帧传输 每一帧都有上下文的联系 所以可以不分先后顺序发送
Server push 服务端可以主动推送服务
http1.1只能串行 等第一个请求返回后才能处理第二个请求
而http2可以 只创建一个http连接进行多个http请求的处理