零基础入门 HTTP!从基础到精通,彻底搞懂核心逻辑,收藏这一篇就够了

news2026/4/26 20:29:01
彻底搞懂HTTPHTTP发展史HTTPHypertext Transfer Protocol超文本传输协议是用于在互联网上传输超文本如网页的应用层协议。最早版本0.9仅用于简单的文档浏览功能极其有限。正式版本1.0引入了请求头Request Headers和响应头Response Headers支持更多元的数据类型如图片、CSS等。支持不同的 HTTP 方法GET、POST、HEAD。响应中包含状态码如 200、404 等。每个请求/响应后都会关闭 TCP 连接效率较低每次请求都要重新建立 TCP 连接存在较大的连接开销延迟高。HTTP/1.1持久连接Persistent Connection 默认情况下TCP 连接在多个请求之间保持打开减少了连接建立的开销。 Connection: keep-alive | close管道化Pipelining实际很少使用 允许客户端在未收到前一个响应时发送多个请求但服务器仍需按顺序响应实际效果有限且存在队头阻塞问题。 队头阻塞Head-of-Line Blocking 在同一个 TCP 连接中请求必须按顺序处理前一个请求未完成会阻塞后续请求。 —— 第一个请求队头如果卡住了后面的请求即使已经处理完毕也得等着。支持更多的请求方法如 PUT、DELETE 等。引入了Host 头使得在一台服务器上可以托管多个网站虚拟主机支持。支持分块传输编码Chunked Transfer Encoding由于管道化存在严重的队头阻塞而且实现复杂、兼容性差 实际上大多数 HTTP/1.1 的实现并没有启用管道化而是采用了 “多个 TCP 连接” 的方式来模拟并发比如一个网页打开时会建立 多个 TCP 连接通常是 6~8 个 每个连接上按顺序发送请求。HTTP/2二进制协议 不再是文本格式而是二进制格式更高效、更紧凑解析更快。多路复用Multiplexing 允许多个请求和响应在同一个 TCP 连接上并发进行彻底解决了 HTTP/1.1 的队头阻塞问题。头部压缩HPACK 对 HTTP 头部进行压缩减少冗余数据传输。服务器推送Server Push 服务器可以主动向客户端推送资源而无需客户端显式请求。流优先级 可以为不同请求设置优先级优化资源加载顺序。除了服务器推送其他都默认开启。nginx下开启Server Push方法location /index.html {http2_push /style.css;http2_push /script.js;}但实际使用中由于浏览器智能预加载已经很高效 Server Push 的实际收益有限需谨慎使用。HTTP/3HTTP/2 仍然运行在 TCP 协议之上而 TCP 是一个面向字节流、强调可靠性和顺序性的协议。应用层解决了队头阻塞问题传输层却没解决。 为了解决 HTTP/2 中 TCP 层的队头阻塞问题HTTP/3 转而基于 QUIC 协议而 QUIC 基于 UDP 而非 TCP。基于 QUICQuick UDP Internet Connections QUIC 是由 Google 提出并标准化IETF运行在 UDP 上集成了 TLS 加密、多路复用、快速连接建立等特性。彻底解决队头阻塞 每个流stream独立传输即使某个流丢包也不会影响其他流。更快的连接建立 由于 QUIC 内置了 TLS握手过程更快通常 1-RTT 或 0-RTT。内置加密 HTTP/3 通常总是加密的安全性更高。* 改进移动网络性能 更适应高丢包、高延迟的网络环境如移动网络、Wi-Fi 切换等。HTTPSHTTPS HTTP TLS/SSLTransport Layer Security / Secure Sockets Layer加密层工作原理简述客户端发起请求Client Hello服务器响应Server Hello并发送证书包含公钥客户端验证服务器证书提取公钥客户端生成一个随机的对称密钥称为“会话密钥”或“预主密钥”用服务器的公钥加密后传给服务器服务器用自己的私钥解密得到对称密钥双方后续通信都使用这个对称密钥加密关于TCP的粘包“粘包”Sticky Packet 并不是TCP协议本身的一个错误或问题而是在使用TCP进行数据通信时由于TCP是面向字节流的协议开发者在使用过程中可能遇到的一种现象。发送方依次发送包1“Hello”包2“World”接收方可能收到TCP 是面向字节流Byte Stream的协议它本身不保留应用层消息的边界。TCP 只保证数据可靠传输按顺序到达但不关心你应用层每次发送的数据是“一条消息”还是“多条消息”。 既然 TCP 不帮我们区分消息边界那我们就需要在应用层协议上自己定义好消息的格式与边界情况1一次收到 “HelloWorld”两个包粘在一起了情况2正常分别收到 “Hello” 和 “World”没粘包请求行 Headers 空行\r\n\r\n 标识 HTTP 头部结束。Content-Length 或 Transfer-Encoding标识消息体的长度或者传输方式从而让接收方能准确知道消息体在哪里结束。文章来自网上侵权请联系博主互动话题如果你想学习更多网安方面的知识和工具可以看看以下题外话题外话黑客/网络安全学习路线今天只要你给我的文章点赞我私藏的网安学习资料一样免费共享给你们来看看有哪些东西。网络安全学习资源分享:下面给大家分享一份2025最新版的网络安全学习路线资料帮助新人小白更系统、更快速的学习黑客技术一、2025最新网络安全学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图学习规划。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。**读者福利 |**CSDN大礼包《网络安全入门进阶学习资源包》免费分享**安全链接放心点击**![](https://i-blog.csdnimg.cn/img_convert/a6502ab41b1a86132b9ebb5aab9a2cdc.jpeg)我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:网络安全的基础入门L1阶段我们会去了解计算机网络的基础知识以及网络安全在行业的应用和分析学习理解安全基础的核心原理关键技术以及PHP编程基础通过证书考试可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。L2级别网络安全的技术进阶L2阶段我们会去学习渗透测试包括情报收集、弱口令与口令爆破以及各大类型漏洞还有漏洞挖掘和安全检查项目可参加CISP-PTE证书考试。L3级别网络安全的高阶提升L3阶段我们会去学习反序列漏洞、RCE漏洞也会学习到内网渗透实战、靶场实战和技术提取技术系统学习Python编程和实战。参加CISP-PTE考试。L4级别网络安全的项目实战L4阶段我们会更加深入进行实战训练包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握而L3 L4更多的是通过项目实战来掌握核心技术针对以上网安的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、技术文档和经典PDF书籍书籍和学习文档资料是学习网络安全过程中必不可少的我自己整理技术文档包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点电子书也有200多本书籍含电子版PDF三、网络安全视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的网安视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。网上虽然也有很多的学习资源但基本上都残缺不全的这是我自己录的网安视频教程上面路线图的每一个知识点我都有配套的视频讲解。四、网络安全护网行动/CTF比赛学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、网络安全工具包、面试题和源码“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等感兴趣的同学不容错过。面试不仅是技术的较量更需要充分的准备。在你已经掌握了技术之后就需要开始准备面试我们将提供精心整理的网安面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。如果你是要找网安方面的工作它们绝对能帮你大忙。这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的如果大家有好的题目或者好的见解欢迎分享。参考解析深信服官网、奇安信官网、Freebuf、csdn等内容特点条理清晰含图像化表示更加易懂。内容概要包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…**读者福利 |**CSDN大礼包《网络安全入门进阶学习资源包》免费分享**安全链接放心点击**本文转自 https://blog.csdn.net/ewii12567/article/details/152723547?spm1001.2014.3001.5502如有侵权请联系删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2548335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…