嘎嘎学习之http协议 | 青训营笔记

61 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第六天

1. 初识Http

在浏览器的地址栏输入一个域名之后都发生了什么

image-20220803220634819

1.1 什么是http?

  • http全称是超文本传输协议
  • 是一个应用层协议,是基于tcp协议
  • 分为请求和响应
  • 非常简单并且可扩展
  • 是无状态的,每一个请求都是孤立的,无法知道他之前做过什么事情,携带过什么信息

1.2 http的发展历程

image-20220803222706446

1.3 http协议分析-报文

image-20220803222953446

> 请求方法

image-20220803223104747

safe(安全的方法):不会修改服务器的数据的方法

  • get head options

idempotent(幂等的方法):同样的请求被执行一次和连续执行多次的效果是一样的,服务器的状态也是一样的

  • get head options put delete

image-20220803223148936

> 状态码

image-20220803223507407

> 请求头

image-20220803224950890

> 响应头

image-20220803225211673

> 缓存

缓存分为两种:

  • 强缓存:如果本地有缓存就直接用本地的缓存
  • 协商缓存: 使用前先和服务端进行通信,彼此验证一下

image-20220803225700245

缓存的过程

image-20220803230150561

> cookie

image-20220803230518365

1.4 http/2

更快 更稳定 更简单

  • 帧:是http/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
  • 二进制:在http/1.1中是以超文本的形式传输,而在http/2中是以二进制的形式
  • 消息:与逻辑请求或者响应消息对应的完整一系列的帧
  • 数据流:已建立链接内的双向字节流可以承载一条或多条消息
  • 所有的帧可以交错发送,接收方根据标志信息重新组织,提高了效率

image-20220803230736605

image-20220803230940015

image-20220803231435510

1.5 https

通俗来讲,就是经过了加密的http

image-20220803231659179

2. case

2.1 关于获取静态资源的几种方式

  • 缓存
  • cdn
  • 文件名hash

image-20220803233026348

2.2 跨域的解决方案