HTTP 使用指南|青训营笔记Day 5

46 阅读3分钟

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

本节课的知识要点:

  1. HTTP 协议的基本定义
  2. HTTP 协议分析
  3. HTTP 协议常见场景
  4. HTTP 协议实际应用以及更多了解

本节课的知识要点:

  • HTTP协议是指超文本传输协议
  • HTTP协议是应用层协议,是基于TCP协议
  • TCP协议的特点:

       1、面向连接

       2、点对点(一对一)、

       3、可靠交付

       4、面向字节流(把上层协议传递过来的数据当成字节传输)

      为了实现TCP上述的特点,TCP协议需要解决的事情是面向连接(建立连接和关闭连接的方式)、可靠传输(错误确认和重传)、流量控制(发送方和接收方的传输率协调)、拥塞控制四个方面

  • HTTP协议的发展历程:

     HTTP/0.9:单行协议,响应只有HTML文档

    --> HTTP/1.0:构建可扩展性,增加了Header,有了状态码,支持多种文档类型

    --> HTTP/1.1:标准化协议,链接复用,缓存,内容协商

    --> HTTP/2:有了更优异的表现,二进制协议,压缩header,服务器推送

    --> HTTP/3:草案

  • 状态码

    1xx:指示信息,表示请求已接收,继续处理 2xx:成功,表示请求已被成功接收、理解、接收 3xx:重定向,要完成请求必须进行更进一步的操作 4xx:客户端错误,请求有语法错误或请求无法实现 5xx:服务器端错误,服务器未能实现合法的请求

    200 OK - 客户请求成功 301 - 资源(网页等)被永久转移到其它URL 302 - 临时跳转 401 Unauthorized - 请求未经授权 404 - 请求资源不存在,可能是输入了错误的URL 500 - 服务部内部发生了不可预期的错误 504 Gateway Timeout - 网关或者代理的服务器无法在规定的时间内获得想要的响应

  • RESTful API

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

    (1)每一个URI代表一种资源;

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

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

  • 常用请求头

  • 常用响应头

  • 强缓存与协商缓存
  • 应用场景案例:【今日头条】浏览器  今日头条 (toutiao.com)
  • 实战 --- 浏览器/nodejs、常用库
  • 扩展 --- WebSocket、QUIC

      (1)WebSocket:

           ‣ 浏览器与服务器进行全双工通讯的网络技术

           ‣ 典型场景:对实时性有高要求,如聊天室

           ‣ URL 使用 ws:// 或 wss:// 等开头

      (2)QUIC:Quick UDP Internet Connection

           ‣ O-RTT建联(首次建联除外)

           ‣ 类似TCP的可靠传输

           ‣ 类似TLS的加密传输,支持完美前向安全

           ‣ 用户空间的拥塞控制,最新的BBR算法

           ‣ 支持h2的基于流的多路复用,但没有TCP的HOL问题

           ‣ 前向纠错FEC

           ‣ 类似MPTCP的Connection migration

新年快乐!