HTTP实用指南 | 青训营笔记

45 阅读2分钟

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

课堂内容

一、初识HTTP

1.什么是HTTP

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

二、协议分析

1.发展

image.png

2.报文

image.png

3.HTTPS

  • HTTPS:Hypertext Transfer Protocol Secure
  • 经过TSL/SSL加密
    • 对称加密:加密和解密都是使用同一个密钥
    • 非对称加密,加密和解密需要使用两个不同的密钥:公钥(public key)和私钥(private key)

三、场景分析

1.静态资源

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

2.登录

  • 业务场景
    • 表单登录
    • 扫码登录
  • 技术方式
    • SSO

3.跨域问题

  • CORS( Cross-Origin Resource Sharing )
  • 预请求:获知服务端是否允许该跨源请求(复杂请求)
  • 相关协议头

image.png

四、实战

1.浏览器

  • AJAX之XHR
    • XHR:XMLHttpRequest
    • readyState
      • UNSENT:代理被创建,但尚未调用 open()方法。
      • OPENED:open()方法已经被调用。
      • HEADERS_ RECEIVED:send() 方法已经被调用,并且头部和状态已经可获得。
      • LOADING:下载中,responseText属性已经包含部分数据。
      • DONE:下载操作已完成
  • AJAX之Fetch
    • XMLHttpRequet的升级版
    • 使用Promise
    • 模块化设计,Response, Request,Header对象
    • 通过数据流处理对象,支持分 块读取

2.node

  • 标准库HTTP/HTTPS
    • 默认模块,无需安装其他依赖
    • 功能有限/不是十分友好
  • 常用请求库axios
    • 支持浏览器、nodejs环境
    • 丰富的拦截器

五、了解更多

1.WebSocket

  • 浏览器与服务器进行全双工通讯的网络技术
  • 典型场景:实时性要求高,例如聊天室
  • URL 使用 ws:// 或 wss:// 等开头 image.png

2.QUIC

  • Quick UDP Internet Connection
  • 0-RTT 建联(首次建联除外)
  • 类似TCP的可靠传输
  • 类似TLS的加密传输,支持完美前向安全
  • 用户空间的拥塞控制,最新的BBR算法
  • 支持h2的基于流的多路复用, 但没有TCP的 HOL问题
  • 前向纠错FEC
  • 类似MPTCP的Connection migration

image.png

以上就是我总结的第七节课的内容了,内容有疏漏还请见谅,有错误还请指正。其中场景分析知识点比较零碎,建议大家跟着老师过一遍,希望我们一起进步,顺利结营!