HTTP | 青训营笔记

48 阅读3分钟

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

01.初识

背景知识 : 什么是HTTP,其基本特点是

什么是HTTP

Hyper Text Transfer Protocol超文本传输协议

  • 应用层协议、基于TCP协议

  • 请求   相应

  • 简单可扩展

  • 无状态

image.png

02.协议分析

报文结构,发展历程

协议发展分析

image.png

协议分析 —— 报文

image.png

Method

  • GET : 请求一个指定资源的表示形式,使用GET的请求应只被用于获取数据
  • POST : 用于将实体提交到指定资源,通常导致在服务器上的状态变化或副作用
  • PUT : 用请求有效载荷替换目标资源的所有当前表示
  • DELETE : 删除指定资源
  • HEAD : 请求一个与GET请求的响应相同的响应,但没有响应体
  • CONNECT : 建立一个到由目标资源标识的服务器的隧道
  • OPTIONS : 用于描述目标资源的通信选项
  • TRACE : 沿着目标资源的路径执行一个消息环回测试
  • PATCH : 用于对资源应用部分修改

一些请求的特点 :

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

状态码

image.png

RESTful API : 一种API设计风格

(1) 每一个URL代表一种资源

(2) 客户端和服务器之间,传递这种资源的某种表现层

(3) 客户端通过HTTP method , 对服务器端资源进行操作,实现“表现层状态转化”

image.png

常用请求头

image.png

常用响应头

image.png

缓存

image.png

Cookie

image.png

协议分析 ———— 发展

HTTP2概述 : 更快、更稳定、更简单

    • HTTP/2 通信的最小单位
    • 各帧包括帧头,至少包括当前帧所属数据流
    • 二进制
  • 消息

    • 与逻辑请求或响应对应的完整的一系列帧
  • 数据流

    • 已建立的连接内的双向数据流,可以承载一条或多条消息
    • 允许数据交错发送
  • 其他

    • 连接是永久的,单个来源只需一个连接
    • 流控制机制 - 阻止发送方向接收方发送大量数据
    • 允许服务器

HTTPS

经过 TSL/SSL 加密

  • 对称加密 加密解密使用同一个密钥
  • 非对称加密 加密解密使用两个不同的密钥 - 公钥&私钥

03.常见场景

静态资源,登陆

静态资源

CDN content delivery network

缓存 + CDN + 文件名hash

登录

不同域名提供登录API,跨域请求 OPTIONS+POST

代理服务器,负责分发请求

HTTP默认80端口

HTTPS 默认443端口

session+cookie | JSON web token

跨域 CORS

复杂请求 - 发起预请求

用户体验

  • 网络优化

    • 开启http/2
    • 数据压缩
    • 域名 - 域名收敛及域名发散
    • 预解析 <link rel="dns-prefetch" href="#"></link>
    • 预连接 <link rel="preconnect" href="#"></link>