[HTTP] 01一张思维导图带你领略HTTP发展史

2023-11-06

在这里插入图片描述

HTTP是什么

HTTP作为一个较常见的应用协议,在面试过程中经常会对其相关内容进行考察,其发展史亦是重点。

HTTP是什么?HTTP为Hyper Text Transfer Protocol的简写,中译超文本传输协议,是在计算机网络里面点对点之间传输 图片、视频等超文本数据的协议和规范

从投入使用到现在,HTTP经历了4个阶段。现在市面上大多数网站依旧使用的是HTTP 1.1版本。

HTTP 0.9 仅支持GET操作获取纯文本,充分验证了Web服务的可行性,蕴含了进化和拓展到可能。

HTTP 1.0 在上一个版本上取得了突破,新增了HEAD、POST等方法,新增状态响应码,引入了版本号的概念(将上一版本定义为HTTP 0.9版本),引入了HTTP Header(头部)的概念对请求和响应进行拓展,并且传输的内容不再局限于文本。

HTTP 1.1 新增了PUT、DELETE等方法,新增缓存管理和控制,默认长连接(Connection: Keep-Alive),强制要求Host字段,新增管道传输(适用于大文件传输)。

HTTP 2 开始使用二进制进行传输,废弃管道机制可以允许多个请求(无需按序),有专用算法进行压缩头部(拥有一张表进行维护),允许由服务端主动向客户端发送数据(在这一刻,原本客户端和服务端的角色进行互换,所以在描述的HTTP的时候不能总结为“客户端和服务端传输超文本数据的协议”)。

HTTP 3 最突出的贡献是使用了基于UDP协议的QUIC协议(此前的HTTP版本均是基于TCP协议)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[HTTP] 01一张思维导图带你领略HTTP发展史 的相关文章

  • IFormFile 未由 dropzone uploadMultiple 请求填充

    我遇到的问题是 IFormFile 列表没有填充给定的文件 但是当我调用 HttpContext Request Form Files 时然后我就可以访问这些文件了 我更喜欢使用 IFormFile 因为它似乎是新的 Dotnet core
  • 如何知道 HTTP 服务器何时完成发送数据

    我正在开发一个面向浏览器 代理的项目 我需要下载网页 向 Web 服务器发送自定义 HTTP 请求后 我开始监听服务器响应 读取响应时 我检查响应标头中的 Content Length row 如果我得到其中之一 很容易确定服务器何时完成发
  • 如何在 Varnish 中禁用“传输编码:分块”编码?

    Using 清漆4 https www varnish cache org content varnish cache 400 我有一组后端以有效的方式响应Content Length标题和没有Transfer Encoding heade
  • 在 Go 中读取请求负载?

    我正在使用文件上传器 需要请求负载中的详细信息来裁剪它 func Upload w http ResponseWriter r http Request reader err r MultipartReader if err nil htt
  • 使用哪个 HTTP 状态代码来拒绝由于乐观锁定失败而导致的 PUT

    假设我想实现某种乐观锁定并使用 ETag 来指示最新的资源状态 这意味着 客户将使用If Match标题时PUT等待更新 根据HTTP规范 http www w3 org Protocols rfc2616 rfc2616 sec14 ht
  • Tomcat 7 停止接收 HTTP 请求

    我有一个Tomcat 7接收大量数据的服务器GET 要求 这种方法在一段时间内效果很好 然后突然停止工作 7 8 小时后 当它停止工作时 我收到此错误 五月 06 2015 12 47 58 AM org apache coyote htt
  • 静默地将 api 资源移动到另一个 url

    我已经用 WepApi 2 编写的 api 与主网站紧密结合 我决定将其与另一个网络应用程序解耦 以使事情更加隔离 我遵循了这样的步骤 将所有 API 控制器提取到另一个项目 创建属性以将当前使用旧 URL 的所有用户重定向到新 URL 由
  • HTTP实时音频流服务器

    作为概念验证 我需要创建一个 HTTP 服务器 该服务器在 GET 请求时应启动连续的非编码 非压缩音频数据流 WAV PCM16 我们假设音频数据是 4096 个随机生成的单声道音频样本块 采样率为 44 1kHz 我应该在 HTTP 响
  • Jsoup http 日志记录

    有没有办法记录http请求和响应 我们假设以下请求 Connection Response res Jsoup connect LOGIN URL HERE data user USER pass PASS method Connectio
  • .htaccess 路由到服务器上的子目录?性能/加载时间

    我想知道是否可以使用 htaccess 文件将我的域直接路由到服务器上的子目录 我从常规虚拟主机提供商处购买了虚拟主机软件包 其中我的domain com 连接到我的服务器的根目录 我想知道是否可以以某种方式将 htaccess 文件上传到
  • 如何在C++中使用Curl获取HTTP响应字符串

    我对 HTTP 命令和 libcurl 库非常陌生 我知道如何获取 HTTP 响应代码 但不知道如何获取 HTTP 响应字符串 以下是我为获取响应代码而编写的代码片段 任何有关如何获取响应字符串的帮助将不胜感激 curl easy seto
  • HTTP请求压缩

    一般用例 想象一下一个正在上传大量 JSON 的客户端 内容类型应保留application json因为这描述了实际数据 Accept Encoding 和 Transfer Encoding 似乎是为了告诉服务器应该如何格式化响应 看起
  • 是否有管理 __utma、__utmz 等 cookie 的标准?

    无论我登录 Facebook 还是 Twitter 我都会受到以下名称的 cookie 轰炸 utma utmb utmc utmv 它们的功能是什么 是否有一个标准来管理这些在服务器端的使用方式 这些 cookie 通常与谷歌分析 htt
  • 在 Heroku 上获取客户端的真实 IP 地址

    在任何 Heroku 堆栈上 我想获取客户端的 IP 我的第一次尝试可能是 request headers REMOTE ADDR 当然 这是行不通的 因为所有请求都是通过代理传递的 所以替代方法是使用 request headers X
  • 如何使用独立的 Jetty 进行服务器推送

    我正在尝试使用独立的 Jetty 在静态网站上测试服务器推送功能 我的网站由一个index html 1个CSS 一堆图像组成 目录结构为 Album index html style css images image 1 png a se
  • HTTP 和 HTTPS iframe

    我正在创建一个小部件 我想允许其他人使用它 这iframe通过 HTTP 加载 但我想允许用户通过 HTTPS 登录 即通过 SSL 发送登录请求 同源策略中允许这样做吗 即 场景是用户可以将我的 JavaScript 集成到他们的网站 小
  • .NET 中有什么方法可以以编程方式侦听 HTTP 流量吗?

    我正在使用浏览器自动化来测试网站 但我需要验证来自浏览器的 HTTP 请求 即图像 外部脚本 XmlHttpRequest 对象 有没有一种方法可以以编程方式实例化代理以供浏览器使用以查看其发送的内容 我已经在使用 Fiddler 来监视流
  • Angular JS 在调用新的 $http 之前取消 $http 调用

    在 Angular JS 1 1 5 中 您可以取消之前启动的 http 调用 这两个link1 https stackoverflow com questions 16962232 in angularjs how to stop ong
  • 在golang中获取TTFB(第一个字节的时间)值

    我正在尝试获取 TTFB 值和 Connect 值 c exec Command curl w Connect time connect TTFB time starttransfer Total time time total o dev
  • 多个客户端如何同时连接到服务器上的一个端口(例如 80)? [复制]

    这个问题在这里已经有答案了 我了解端口工作原理的基础知识 但是 我不明白的是多个客户端如何同时连接到端口 80 我知道每个客户端都有一个唯一的 对于他们的机器 端口 服务器是否从可用端口回复客户端 并简单地声明回复来自 80 这是如何运作的

随机推荐

  • 深入理解Netty高性能网络框架

    大家好 今天我们来聊聊Netty的那些事儿 我们都知道Netty是一个高性能异步事件驱动的网络框架 它的设计异常优雅简洁 扩展性高 稳定性强 拥有非常详细完整的用户文档 同时内置了很多非常有用的模块基本上做到了开箱即用 用户只需要编写短短几
  • 平衡二叉树(AVL)python实现

    AVL树是一种特殊的二叉搜索树 BST树 数据极端情况下 二叉搜索树会退化成为单链表 但是AVL树通过旋转操作规避了这个问题 查找平均复杂度 O logn AVL树不适于删除的情况 class AVLTreeNode object def
  • Nginx 配置日志打印--HTTP报文

    http include mime types default type application octet stream log format main remote addr remote user time local request
  • loadrunner12——录制脚本时网络连接错误——无法弹出浏览器解决方法

    loadrunner12可以使用火狐浏览器 如果大家安装有问题 为了避免出错 可根据以下地址重新进行安装 https blog csdn net lmm0513 article details 87935863 1 首先打开loadrunn
  • 1到100, 中间随机抽走一个数,用算法得出是哪个数

    import java util ArrayList import java util HashMap import java util List import java util Map public class HunderTest p
  • UNIX环境高级编程 学习笔记 第二章 UNIX标准及实现

    C语言的ANSI标准在1989年得到批准 此标准也被采纳为国际标准ISO IEC 9899 1990 ANSI是美国国家标准学会 American National Standards Institute 它是国际标准化组织ISO Inte
  • 什么是全国大学生电子设计大赛?如何备战?

    前言 全国大学生电子设计竞赛是教育部和工业和信息化部共同发起的大学生学科竞赛之一 每一届都有非常多的大学生参加 但每届的比赛前夕 总会有很多同学并不清楚比赛的相关信息 流程以及如何去备战比赛 导致在比赛中出现准备不足或违法比赛规则等现象从而
  • C++--封装

    目录 封装 封装的含义 封装的意义1 实例一 实例二 C 面对对象的三大特点 继承 封装 多态 封装 封装的含义 将对象的属性和行为作为一个整体 表现生活中的事物 将属性和行为加以权限控制 封装的意义1 设计一个类 将属性和行为写到一起 表
  • Struts简介

    一 Struts英文单词意思 支柱 支架 来源于建筑和旧式飞机使用的金属支架 二 定义 Struts是流行和成熟的基于MVC设计模式的Web应用程序框架 Struts在软件开发中 是一个非常优秀的框架 它先是Jakarta项目的一个子项目
  • 微服务常见解决方案和高并发常见解决方案、以上特殊解决方案

    我确实比较懒 有些东西总是会写到自己的笔记本上或者在线笔记中 一般很少总结写到博客中 闲来无事确实总结了一些 如果你需要 可以私信聊聊 不敢说有特别好特别完美的方案 但是从个人视角结合知识再结合经验还是有点可说的内容的 如果你需要请私信
  • Parameter ‘name‘ not found. Available parameters are [0, 1, param1, param2]] with root cause

    SpringBoot环境 测试查询数据库 第一次直接通过dao层的注解查询 全局查询没问题 加入参数就报错了 提示说传的参数找不到 打印出来都有值 最后查了一下 这是错误的接口方法 查询注解里的参数有问题 修改为
  • TinyKv流程梳理三

    split流程 处理协程启动 func bs Raftstore startWorkers peers peer ctx bs ctx workers bs workers router bs router bs wg Add 2 raft
  • RecycleView

    鸿洋 Android RecyclerView 使用完全解析 体验艺术般的控件 http blog csdn net lmj623565791 article details 45059587 Android RecycleView 实现滑
  • 虚拟机服务器之间文件拷贝与传输

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 scp scp定义 scp可以实现服务器与服务器之间的数据拷贝 from server1 to server2 二 rsync rsync主要用于备份和镜
  • 开漏输出、推挽输出的区别

    前言 background 测试相关设备引脚输出 使用示波器时发现部分引脚需外接上拉电阻至高电平才能在示波器观察到高阻态 为了深究其中原理 查阅了相关资料 发现知乎中有一篇对这两种输出描述得清晰易懂的文章 此时才真正了解信号高阻态和高电平输
  • SpringBoot--基础--04--拦截器

    SpringBoot 基础 04 拦截器 拦截器 实现HandlerInterceptor接口 注册拦截器 一 代码结构 MyMvcConfig 使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能 Conf
  • 同步方法及同步代码块

    synchronized方法和synchronized块 synchronized方法必须获得对象的锁才能执行 否则线程阻塞 方法一旦执行 就独占此锁 直到方法返回才释放锁 后面被阻塞的线程才能获得这个锁 继续执行 synchronized
  • 谷歌取消了2000多人的offer,特殊时期如何应对裁员?

    就在刚刚 CNBC报道 科技大厂谷歌有上千人饭碗保不住了 图片来自NBC 版权属于原作者 谷歌缩减招聘 据悉这部分人主要是谷歌的合同工和临时工 纽约时报 报道 谷歌取消了2000多人的工作录取 上个月 谷歌首席执行官劈柴君向员工承认 由于新
  • 字符串 字符串中的第一个唯一字符

    LC 字符串中的第一个唯一字符 给定一个字符串 s 找到 它的第一个不重复的字符 并返回它的索引 如果不存在 则返回 1 Swift 实现 func firstUniqChar s String gt Int 创建字符数组 var arra
  • [HTTP] 01一张思维导图带你领略HTTP发展史

    HTTP是什么 HTTP作为一个较常见的应用协议 在面试过程中经常会对其相关内容进行考察 其发展史亦是重点 HTTP是什么 HTTP为Hyper Text Transfer Protocol的简写 中译超文本传输协议 是在计算机网络里面点对