当前位置: 首页 > article >正文

从零开始掌握HTTP协议:全面详解1.0、1.1和2.0

HTTP协议概述1. 回顾 Http1.x协议Http1.0协议 请求响应的模式 短连接协议无状态协议 传输数据文本结构 单工 无法实现服务端推送 变相实现推动客户端轮训的方式Http1.1协议 请求响应的模式 有限的长连接 升级的方式WebSocket 双工 实现服务器向客户端推送。总结Http1.x协议 共性1. 传输数据文本格式 可读性好的但是效率差。2. 本质上Http1.x协议无法实现双工通信。3. 资源的请求。需要发送多次请求建立多个连接才可以完成。2. HTTP2.0协议1. Http2.0协议是一个二进制协议效率高于Http1.x协议可读性差。2. 可以实现双工通信。3. 一个请求 一个连接 可以请求多个数据。【多路复用】Http2.0协议的三个概念1. 数据流 stream2. 消息 message3. 帧 frame 参看图其他的相关概念1. 数据流的优先级可以通过为不同的stream设置权重来限制不同流的传输顺序。2. 流控 client发送的数据太快了server处理不过来通知client暂停数据的发送。HTTPHyperText Transfer Protocol即超文本传输协议是一种用于聚会、协作式和超媒体信息系统的应用层协议是万维网的数据通信基础。HTTP是一个无状态协议每次请求都是独立的不会保留之前的请求信息。1.HTTP/1.0单工特点无状态连接每次请求/响应后连接即断开。单一请求/响应每次连接只能发送一个请求并接收一个响应。缺乏服务器控制没有提供标准的服务器控制机制。无持久连接每次请求都需要重新建立连接效率低下。2.HTTP/1.1双工特点持久连接默认启用连接复用机制即在同一个连接中可以发送多个请求和响应减少了连接建立和中断的开销。管道化请求允许在同一个连接中同时发送多个请求虽然响应顺序仍按请求顺序。服务器控制引入了更多的服务器服务器如Cache-Control头。带宽优化和网络连接的使用引入Range头允许请求部分资源适用于断点续传等场景。更多的状态码扩展了状态码如100 Continue等。3.HTTP/2.0特点二进制分帧将请求和响应消息中继都是更小的帧且这些帧是二进制的而不是文本的。多路复用同一个连接上可以发送多个请求和响应并且它们可以乱序发送和接收不再受顺序的限制。头部压缩通过HPACK算法对头部信息进行压缩减少传输的数据量。服务器活跃服务器可以主动将资源活跃到客户端服务器中从而需要客户端明确的请求。更快的传输速度得益于上述改进HTTP/2.0显着提升了网页加载速度。HTTP/1.0和HTTP/1.1的主要区别1. 持久连接HTTP/1.0请求/响应需要单独的连接导致每次的连接建立和中断大量效率低下。HTTP/1.1开启默认持久连接Keep-Alive可以在一个TCP连接中处理多个请求和响应显着减少了连接开销。2. 请求管道化HTTP/1.0不支持管道化请求。HTTP/1.1支持管道化请求允许在同一个TCP连接中同时发送多个请求但是响应仍然是按顺序的。3. 灾难模式HTTP/1.0没有标准的服务器控制机制主要依赖Expires头。HTTP/1.1引入了更丰富的服务器控制头部例如Cache-Control让客户端和代理服务器可以更灵活地控制服务器策略。4. 任务优化HTTP/1.0不支持部分内容请求。HTTP/1.1引入了Range头支持部分内容请求实现了断点续传功能优化了带宽使用。5. 虚拟主机支持HTTP/1.0不支持虚拟主机需要为每个域名配置单独的IP地址。HTTP/1.1通过Host头支持虚拟主机使得多个域名可以共享同一个IP地址大大节省了IP资源。HTTP/1.1和HTTP/2.0的主要区别1.二进制分帧HTTP/1.1使用文本协议解析和传输都比较运行。HTTP/2.0引入二进制分帧层将HTTP消息分割成更小的二进制帧解析和传输效率更高。2. 多路复用HTTP/1.1虽然支持持久连接和管道化请求但仍然是串行处理每次只能处理一个请求存在“队头阻塞”问题。HTTP/2.0实现了真正的多路复用在一个连接中可以发送多个请求和响应并且可以大量乱序发送和接收提升了传输效率。3. 头部压缩HTTP/1.1头部信息分区尤其是在分区的请求中会带来额外的开销。HTTP/2.0引入了HPACK头部压缩算法对头部信息进行压缩减少了传输的数据量提升了性能。4..服务器主动HTTP/1.1只能由客户端发起请求服务器被动响应。HTTP/2.0服务器可以在客户端未明确请求的情况下主动将资源到客户端缓存减少了延迟提升用户体验。

相关文章:

从零开始掌握HTTP协议:全面详解1.0、1.1和2.0

HTTP协议概述1. 回顾 Http1.x协议 Http1.0协议 请求响应的模式 短连接协议(无状态协议) 传输数据文本结构 单工 无法实现服务端推送 变相实现推动(客户端轮训的方式) Http1.1协议 请求响应的模式 有限的长连接 …...

SeqGPT-560M多场景落地指南:新闻分类、金融抽取、政务摘要一体化方案

SeqGPT-560M多场景落地指南:新闻分类、金融抽取、政务摘要一体化方案 1. 模型介绍:零样本理解新选择 SeqGPT-560M是阿里达摩院推出的零样本文本理解模型,无需训练即可完成文本分类和信息抽取任务。这个模型最大的特点就是"开箱即用&qu…...

基于异步电机的光伏储能三相并网微电网仿真模型附Simulink仿真

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

Apex Legends智能压枪系统深度解析:3大核心技术实现与多分辨率适配工程实践

Apex Legends智能压枪系统深度解析:3大核心技术实现与多分辨率适配工程实践 【免费下载链接】Apex-NoRecoil-2021 Scripts to reduce recoil for Apex Legends. (auto weapon detection, support multiple resolutions) 项目地址: https://gitcode.com/gh_mirrors…...

如何用代码画图?揭秘Mermaid Live Editor的终极可视化创作体验

如何用代码画图?揭秘Mermaid Live Editor的终极可视化创作体验 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-liv…...

5步搞定!用FUTURE POLICE为爬取的播客/访谈录音添加毫秒级精准字幕

5步搞定!用FUTURE POLICE为爬取的播客/访谈录音添加毫秒级精准字幕 1. 引言:为什么需要精准字幕? 在内容创作和媒体制作领域,字幕同步问题一直是个痛点。传统字幕制作通常需要: 先通过语音识别生成文字稿人工反复听…...

Reloaded-II:让游戏模组管理不再复杂的跨平台解决方案

Reloaded-II:让游戏模组管理不再复杂的跨平台解决方案 【免费下载链接】Reloaded-II Next Generation Universal .NET Core Powered Mod Loader compatible with anything X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II 在游戏模组开发…...

为什么说AI创作的成本革命,比技术革命更重要?

过去两年,我见证了太多AI技术的“高光时刻”。 谷歌发布Imagen,Midjourney更新V6,OpenAI推出Sora……每一次,科技媒体都在欢呼“革命来了”“行业变天了”。 但我发现一个有趣的现象:这些“革命性”的工具&#xff0…...

CLion豆包实战:提升C++开发效率的插件开发与集成指南

最近在做一个C项目,用CLion开发体验确实不错,但有个问题一直困扰我:每次切换不同的编译工具链、调试器或者运行测试,都得在菜单里点来点去,或者手动改CMake配置,感觉开发节奏总被打断。后来尝试用豆包插件把…...

零基础上手PP-DocLayoutV3:3步完成文档版面分析,小白也能轻松搞定

零基础上手PP-DocLayoutV3:3步完成文档版面分析,小白也能轻松搞定 1. 为什么你需要文档版面分析 想象一下,你刚收到一份50页的扫描版合同,老板要求你快速整理出所有正文条款、找到关键表格数据、提取每页的页眉页脚信息。传统做…...

LangChain:大模型时代的“神兵利器”,你了解多少?

2022年11月30日,ChatGPT横空出世,彻底点燃了全球对大模型的热情。但在聚光灯之外,一个更底层的生态也在悄然崛起——那就是大模型应用开发框架。今天,我想和你聊聊这个领域目前最耀眼的明星:LangChain。如果你关注GitH…...

ofa_image-caption前沿探索:结合LLM对OFA输出做跨语言翻译与润色增强

OFA图像描述生成工具:结合LLM实现跨语言翻译与润色增强 1. 项目概述 今天要介绍的是一个基于OFA模型的图像描述生成工具,它不仅能够自动为图片生成英文描述,还能通过大语言模型实现跨语言翻译和内容润色,让图像描述更加精准和自…...

GLM-OCR模型版本管理与升级指南

GLM-OCR模型版本管理与升级指南 每次看到GLM-OCR模型出了新版本,你是不是既兴奋又有点头疼?兴奋的是新功能、新优化,头疼的是怎么把它安全、平滑地用到线上服务里,万一出问题怎么办? 在星图GPU平台上,模型…...

Java中在企业级项目中不使用`==`而选择使用`equals`的原因

文章目录比较的是引用地址equals()比较的是对象的内容可以重写equals()以对对象的内容进行比较注意:NullPointerException总结在Java中, 和 equals()都可以用来比较对象,但它们的行为有显著区别。在企业级项目中,通常建议使用 equ…...

DASD-4B-Thinking与LangChain集成:构建智能对话系统

DASD-4B-Thinking与LangChain集成:构建智能对话系统 1. 引言 想象一下,你正在开发一个客服系统,用户问:"我的订单为什么还没到?"传统的AI可能直接回答物流问题,但更智能的系统应该先查询订单状…...

Android HID设备模拟:解锁手机作为专业输入终端的终极方案

Android HID设备模拟:解锁手机作为专业输入终端的终极方案 【免费下载链接】android-hid-client Android app that allows you to use your phone as a keyboard and mouse WITHOUT any software on the other end (Requires root) 项目地址: https://gitcode.com…...

Git急救手册:误操作全场景拯救指南

Git误操作急救手册大纲常见误操作场景分类工作区文件误删或修改丢失暂存区(add)误操作本地commit提交错误(如错误信息、漏提交文件)分支操作失误(误删分支、错误合并)远程仓库推送问题(强制推送覆盖历史)工…...

Alpamayo-R1-10B应用场景:自动驾驶算法团队快速验证因果推理能力方案

Alpamayo-R1-10B应用场景:自动驾驶算法团队快速验证因果推理能力方案 1. 项目背景与核心价值 1.1 自动驾驶研发的痛点挑战 自动驾驶算法开发面临两大核心挑战: 长尾场景处理:现实道路中罕见但关键的特殊场景(如施工区域、紧急…...

C++——C++异常处理

1.C内置了异常处理的语法元素 try...catch...try语句处理正常代码逻辑catch语句处理异常情况try语句的异常由对应的catch语句处理C通过throw语句抛出异常信息2.C异常处理分析throw抛出的异常必须被catch处理(1)当前函数能够处理异常,程序继续…...

GPT-oss:20b创作助手实战:用它辅助写作、翻译、编程的真实感受

GPT-oss:20b创作助手实战:用它辅助写作、翻译、编程的真实感受 1. 为什么选择GPT-oss:20b 作为一名长期与技术打交道的创作者,我一直在寻找一个既强大又可控的AI创作助手。经过多方比较,最终选择了GPT-oss:20b这个开源模型。它最吸引我的几…...

cmux多智能体管理工具

我每天运行多个 Claude Code 代理。同时进行研究、撰写草稿、编写视频脚本,而且不会丢失任何一个代理的进程。 但并非一直如此。我打开 Claude Code 开始工作。然后我需要另一个代理执行另一项任务。我打开了一个新标签页。然后又一个,再一个。很快&…...

SiameseAOE中文-base参数详解:Prompt+Text构建思路与schema定义规范

SiameseAOE中文-base参数详解:PromptText构建思路与schema定义规范 1. 模型概述与核心原理 SiameseAOE通用属性观点抽取-中文-base是一个专门用于中文属性情感抽取(ABSA)的预训练模型。该模型基于创新的提示(Prompt)…...

如何用Python实现三角函数公式的自动计算与验证

如何用Python实现三角函数公式的自动计算与验证 三角函数是数学和工程计算中的基础工具,从信号处理到图形渲染都离不开它们。但手动验证这些公式既耗时又容易出错,而Python的NumPy和SymPy库能让我们用代码自动化这一过程。本文将带你从零开始构建一个三…...

Python默认参数详解

在 Python 中,函数的默认参数(Default Arguments)允许你在定义函数时为某些参数指定一个默认值。调用函数时,如果未提供这些参数的值,它们将自动使用默认值。这一特性可以简化函数调用,提高代码的灵活性。1…...

如何在3分钟内通过手机号找回QQ账号:终极快速解决方案

如何在3分钟内通过手机号找回QQ账号:终极快速解决方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 忘记QQ账号怎么办?当你只记得绑定的手机号,却无法登录QQ时,这款手机号找回QQ账号…...

Z-Image-Turbo-辉夜巫女建筑可视化效果图:从概念草图到逼真渲染的AI辅助流程

Z-Image-Turbo-辉夜巫女建筑可视化效果图:从概念草图到逼真渲染的AI辅助流程 最近和几个做建筑设计的朋友聊天,他们都在感慨,现在做方案汇报越来越“卷”了。甲方爸爸们不再满足于看冷冰冰的CAD线稿或者简单的SU模型截图,他们想要…...

DIY—一拖四串口调试助手

自己工作中经常要用到串口来看打印,有时候设备很多,普通一对一的串口调试器很浪费我们宝贵的USB口资源,大部分现场调试都是拿笔记本去的,所以楼主参考公司部分产品的设计,扒了原理图用CH344Q设计了一个一拖四串口调试器…...

Local AI MusicGen批量生成任务的优化策略

Local AI MusicGen批量生成任务的优化策略 面对数百首背景音乐需要同时生成的需求,传统单任务处理方式显得力不从心 1. 批量生成的核心挑战 在实际应用中,Local AI MusicGen的批量处理能力直接关系到生产效率。当我们从生成单首音乐扩展到同时处理数十甚…...

dll文件缺失,DirectX 运行库修复工具,一键完成dll缺失修复、解决99.99%程序故障、闪退、卡顿等常见问题,轻松解决

系统提示msvcp140.dll丢失vcruntime140.dll丢失msvcr100.dll丢失mfc140u.dll丢失 怎么办?其他DLL错误修复 游戏文件打不开?DLL文件缺失?电脑崩溃?DirectX 轻松修复!游戏运行库修复文件缺失软件必备安装工具&#xff0…...

SecGPT-14B开源模型落地:适配国产化GPU环境的网络安全垂直大模型实践

SecGPT-14B开源模型落地:适配国产化GPU环境的网络安全垂直大模型实践 1. 网络安全大模型的价值与挑战 在数字化转型浪潮中,网络安全已成为企业发展的生命线。传统安全分析面临三大痛点:海量日志分析效率低、威胁情报更新滞后、专业人才严重…...