零基础入门 HTTP!从基础到精通,彻底搞懂核心逻辑,收藏这一篇就够了
彻底搞懂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大礼包《网络安全入门进阶学习资源包》免费分享**安全链接放心点击**我们把学习路线分成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
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!