HTTP实用指南 | 青训营笔记

79 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的最后一天,回顾总结HTTP实用指南

一.什么是HTTP

HTTP全称Hyper Text Transfer Protocol,即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议,是因特网上应用最为广泛的一种网络传输协议,所有的 WWW 文件都必须遵守这个标准。其具以下特点:

  • 应用层协议,基于TCP协议
  • 简单可扩展
  • 无状态

u=3713120937,2168914409&fm=253&fmt=auto&app=138&f=JPEG.jpg

二.协议分析

协议分析-发展

  1. HTTP/0.9单行协议
    -请求GET/mtpage.html
    -响应只有HTML文档
  2. HTTP/1.0构建可扩展性
    -增加了Header
    -有了状态码
    -支持多种文档类型
  3. HTTP/1.1标准化协议
    -链接复用
    -缓存
    -内容协商
  4. HTTP/2更有意的表现
    -二进制协议
    -压缩header
    -服务器推送
  5. HTTP/3草案

协议发展-报文

Method

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

三.场景应用

  1. 打开chrome
  2. 输入www.toutiao.com
  3. 打开控制台
    -右键->检测
    -F12
  4. 切换到network

四.扩展

扩展-通信方式

WebSocket

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

QUIC

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