HTTP实用指南 | 青训营

80 阅读2分钟

1.初识HTTP

背景知识;什么是HTTP,其基本特点 在这里插入图片描述 在这里插入图片描述

什么是HTTP

  • Hyper Text Transfer Protocol超文本传输协议
  • 应用层协议,基于TCP协议
  • 请求 响应
  • 无状态

在这里插入图片描述

2.协议分析

报文结构,发展历程

持续发展

在这里插入图片描述

报文分析

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

状态码

在这里插入图片描述

RESTful API

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

  1. 每个URL代表一种资源
  2. 客户端和服务器之间,传递这种资源的某种表现层
  3. 客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化” 在这里插入图片描述

常用请求头

在这里插入图片描述

常用响应头

在这里插入图片描述

缓存

在这里插入图片描述在这里插入图片描述

cookie

在这里插入图片描述

发展

在这里插入图片描述 在这里插入图片描述在这里插入图片描述

HTTPS概述

  • HTTPS:Hypertext Transfer Protocol Secure
  • 经过TSL/SSL加密
  • 对称加密:加密和解密都是使用同一个密钥
  • 非对称加密:加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key) 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

3.常见场景

静态资源、登陆 在这里插入图片描述

静态资源

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

登录

在这里插入图片描述转存失败,建议直接上传图片文件 在这里插入图片描述在这里插入图片描述 在这里插入图片描述

跨域

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 适合使用JWT的场景:

  • 有效期短
  • 只希望被使用一次 比如,用户注册后发一封邮件让其激活账户,通常邮件中需要有一个链接,这个链接 需要具备以下的特性:能够标识用户,该链接具有时效性(通常只允许几小时之内激活),不能被篡改已激活其他可能得账户,一次性的。这种场景就适合使用JWT。 而由于JWT具有一次性的特性。单点登录和会话管理非常不适合用JWT,如果在服务器端部署额外的逻辑存储JWT的状态,那还不如使用session。基于session有很多成熟的框架可以开箱即用,但是用JWT还要自己实现逻辑

SSO:单点登录(Single Sign On)

在这里插入图片描述

4.实际应用

浏览器与node中使用

浏览器

在这里插入图片描述 在这里插入图片描述

nodejs

在这里插入图片描述

常用库

在这里插入图片描述

用户体验

在这里插入图片描述 在这里插入图片描述

稳定性

在这里插入图片描述

  • 重试是保证稳定的有效手段,但要防止加剧恶劣情况
  • 缓存合理使用,作为最后一道放防线

5.了解更多

不止HTTP协议一个选择

扩展-通信方式

WebSocket

  • 浏览器与服务器进行全双工通讯的网络技术
  • 典型场景:实时性要求高,例如聊天室
  • URL使用ws:// 或 wss://等开头 *在这里插入图片描述

QUIC:Quick UDP Internet Connection

在这里插入图片描述