HTTP实用指南 | 青训营笔记

39 阅读2分钟

image.png

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

初识HTTP

什么是HTTP

  • 超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 简单可拓展
  • 无状态

协议分析

发展

一些概念

HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流

消息

与逻辑请求或响应消息对应的完整的一系列帧

HTTP/2:更快、更稳定、更简单

一些特点
  • 交错发送,接受方重组织
  • HTTP/2连接都是永久的,而且仅需要每个来源一个连接
  • 流控制:阻止发送方向接收方发送大量数据的机制
  • 服务器推送

HTTPS

image.png

经过TSL/SSL加密

对称加密:加密和解密都是使用同一个密钥 非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥

报文

分类

GET/POST/PUT/DELETE/HEAD/CONNECT/TRACE/PATCH

状态码

RESTful API

一种API设计风格

  • 每一个URI代表一种资源
  • 客户端和服务器之间,传递这种资源的某种表现层
  • 客户端通过HTTP method , 对服务器端资源进行操作,实现"表现层状态转化"

常用请求头

常用响应头

缓存

强缓存
  1. expires 时间戳
  2. cache-control
    1. 可缓存性
    • no-cache:协商缓存验证
    • no-store:不使用任何缓存
    1. 到期
    • max-age:单位是秒,存储的最大周期,相当于请求的时间
    1. 重新验证-重新加载
    • must-revalidate:一旦资源过期,在成功向原始服务器验证之前,不能使用
协商缓存
  • etag/if-none-match:资源的特定版本的标识符,类似于指纹
  • last-modified/if-modified-since:最后修改时间

cookie

场景分析

静态资源

静态资源方案=缓存+CDN+文件名hash

CDN

通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务

image.png

登陆页面功能完善

跨域

CORS

image.png

代理服务器

同源策略是浏览器的安全策略,不是HTTP的

Iframe

诸多不便

下一次进入页面为什么能记住登录态

image.png

单点登录 SSO

image.png

实战

浏览器

XHR

image.png

fetch

image.png

node

标准库:HTTP/HTTPS

image.png

axios

image.png

用户体验

网络优化

image.png

稳定性

image.png

拓展

通信方式

websocket

image.png

QUIC

image.png