HTTP 使用指南 | 青训营笔记

52 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第5天

一、本堂课重点内容:

  1. HTTP 协议的基本定义
  2. HTTP 协议主要特征
  3. HTTP 协议发展历程
  4. HTTP 协议的报文结构
  5. 场景分析 - 静态资源
  6. 场景分析 - 登录
  7. HTTP 协议实战 - 浏览器
  8. HTTP 协议实战 - Node篇
  9. 网络优化手段
  10. HTTP 协议拓展 - 通信方式

二、详细知识点介绍:

HTTP 协议

  • HTTP 全称 Hyper Text Transfer Protocol 超文本传输协议
  • 应用层协议、基于TCP协议 image.png
  • 支持客户/服务器模式,请求+响应
  • 简单可扩展
  • 无状态

HTTP 协议发展历程

image.png

HTTP 协议的报文结构

HTTP报文可以分为四个部分:

  1. 起始行:请求(Method Path Version)、响应(Version StatusCode StatusMessage)
  2. HTTP Headers:请求头、响应头
  3. 空行
  4. body:请求体、响应体

Method

image.png

  • 安全Safe:不会修改服务器的数据的方法:GET HEAD OPTIONS
  • 幂等Idempontent:同样的请求被执行一次与连续执行多次的效果时一样的,服务器的状态也是一样的,所有safe的方法都是idempotent的:GET HEAD OPTIONS PUT DELETE

状态码

image.png

RESTfui API

一种API设计风格;REST - Representational State Transfer

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

image.png

常用请求头

image.png

常用响应头

image.png

缓存

image.png

Cookie

image.png

HTTP/2

更快、更稳定、更简单

  • 帧(frame): HTTP/2 通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
  • 消息(Message): 与逻辑请求或响应消息对应的完整的一系列帧。特定消息的帧在同一个流上发送,这意味着一个HTTP请求或响应只能在一个流上发送。
  • 数据流(Frame): 已建立的TCP连接内的双向字节流,可以承载一条或多条消息

HTTPS概述

HTTPS:Hypertext Transfer Protocol Secure image.png

  • 对称加密:加密和解密都是使用同一个密钥
  • 非对称加密:加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)