HTTP 使用指南 | 青训营笔记

45 阅读2分钟

这是我参与[第五届青训营]笔记创作活动的第五天

本课堂重点内容:

  • HTTP 协议的基本定义
  • HTTP 协议主要特征
  • HTTP 协议发展历程
  • HTTP 协议的报文结构
  • 场景分析: 静态资源 and 登录
  • HTTP 协议实战:浏览器 and Node篇
  • 网络优化手段
  • HTTP 协议拓展:通信方式

详细知识点介绍:

何为 HTTP

  • HTTP 即 Hyper Text Transfer Protocol(超文本传输协议)
  • 应用层协议、基于 TCP 协议
  • 请求响应
  • 简单可扩展
  • 无状态

协议分析 - 报文

Method:

  • GET 请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据
  • POST 用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
  • PUT 用请求有效载荷替换目标资源的所有当前表示
  • DELETE 删除指定的资源
  • Safe(安全的):不会修改服务器数据的方法,如:GET、HEAD、OPTIONS
  • ldempotent(幂等):同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,所有的 safe 方法都是 ldempotent 的

状态码:

  • 1xx 指示信息,表示请求已接收,继续处理
  • 2xx 成功,表示请求已被成功接收,理解 如:200 OK - 客户端请求成功
  • 3xx 重定向,要完成请求必须进行更进一步的操作 如:301 - 资源被永久转移到其他URL,302 - 临时跳转
  • 4xx 客户端错误,请求有语法错误或请求无法实现 如:401 Unauthorized - 请求未经授权,404 - 请求资源不存在,可能是输入了错误的 URL
  • 5xx 服务器端错误,服务器未能实现合法的请求 如:500 - 服务器内部发生不可预期的错误,504 Gateway Timeout - 网关或者代理的服务器无法在规定的时间内获得想要的响应

HTTP2

  • 比起之前的版本,更快、更稳定、更简单。
  • HTTP2 通信的最小单位是 帧,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
  • 消息:与逻辑请求或响应消息对应的完整的一系列帧
  • 数据流:已建立的连接内的双向字节流,可以承载一条或多条消息
  • HTTP2 连接都是永久的,而且只需每个来源一个连接
  • 流控制:阻止发送方向接收方发送大量数据的机制

HTTPS

  • 经过 TSL/SSL 加密
  • 对称加密:加密和解密都是使用同一个密钥
  • 非对称加密:加密和解密需要使用两个不同的密钥:公钥和私钥

个人课后总结:

如果能够深刻理解 HTTP 通信,能够让我们在日常的前端开发工作中快速定位到问题的所在。