计算机网络 之 【HTTP协议】(hppt请求与响应细节、http版本与连接管理)

news2026/4/18 2:16:19
目录1.http请求1.1. http请求方法1.2.http请求报头2.http响应2.1.http响应状态码及其描述2.2.重定向3.http版本简介4.http连接管理4.1.HTTP 连接管理基础4.2.连接类型与演进4.2.1.短连接HTTP/1.0 默认4.2.2.长连接HTTP/1.1 默认4.2.3.多路复用HTTP/2 引入4.2.4.QUIC 连接HTTP/3 核心1.http请求1.1. http请求方法其中最常用的就是GET方法和POST方法特性GETPOST参数位置URL 查询字符串?key1value1key2value2请求体Request Body长度限制受浏览器/服务器限制通常约2048字符无理论限制受服务器配置影响安全性较低参数暴露在URL、日志、浏览器历史中相对较高参数不直接显示在URL缓存可被缓存需配置Cache-Control默认不缓存典型用途获取数据如搜索、分页提交数据如表单、文件上传数据类型仅支持ASCII字符支持二进制数据如文件值得注意的是两者均为明文传输敏感数据如密码必须通过HTTPS加密1post特点POST请求主要用于向服务器提交表单数据不会被缓存2提交参数限制方法理论上HTTP协议实际上生产环境GET无限制有限制浏览器/服务器限制URL长度POST无限制有限制服务器配置限制Body大小相对来说get有限制post无限制1.2.http请求报头HTTP 请求报头分为通用报头、请求报头、实体报头 和 安全相关报头四类Header作用示例Host指定服务器域名和端口Host: www.baidu.comUser-Agent操作系统、浏览器类型及版本等信User-Agent: Chrome/120.0Accept可接收的响应类型Accept: text/html,image/*Accept-Encoding支持的压缩算法Accept-Encoding: gzip, deflateAccept-Language首选语言Accept-Language: zh-CN,zh;q0.9Connection连接管理Connection: keep-alive或closeContent-Type请求体正文数据类型(POST时)Content-Type: application/jsonContent-Length请求体长度Content-Length: 256Cookie携带状态信息Cookie: sessionIdabc123Referer来源页面Referer: https://www.google.comHostHTTP/1.1 必须包含否则服务器会拒绝请求Content-TypePOST/PUT 请求带请求体时通常需要指定User-Agent 是 HTTP 请求头中标识客户端浏览器、爬虫等详细信息的字段服务器通过它优化内容适配如推荐下载版本或实施反爬策略如拦截非浏览器请求而爬虫常通过随机化合法浏览器的 User-Agent 或结合无头浏览器等技术伪装身份以绕过检测但需注意合法性与伦理边界避免高频请求对服务器造成负担2.http响应2.1.http响应状态码及其描述分类状态码描述典型场景2xx 成功200 OK请求成功服务器已正确处理并返回响应。访问网页、API 请求成功。201 Created请求成功且服务器创建了新资源如 POST 请求后。提交表单后创建新用户或订单。204 No Content请求成功但无返回内容如 DELETE 请求后。删除数据后返回空响应。3xx 重定向301 Moved Permanently资源永久迁移到新 URL浏览器自动跳转并缓存新地址。网站域名更换、HTTPS 强制跳转。302 Found(临时重定向)资源临时迁移到新 URL浏览器跳转但不缓存新地址可能被307替代。登录后跳转到首页、促销页面临时链接。307 Temporary Redirect临时重定向严格遵循 HTTP 方法如 POST 请求重定向后仍为 POST。与302类似但保留请求方法。304 Not Modified资源未修改浏览器可使用缓存版本需配合If-Modified-Since等请求头。静态资源如 CSS/JS未更新时返回。4xx 客户端错误400 Bad Request请求语法错误或参数无效如缺少必填字段。提交表单时未填写必填项。401 Unauthorized未认证或认证失败需提供有效Authorization头。未登录访问需要权限的接口。403 Forbidden服务器理解请求但拒绝执行如无权限访问资源。普通用户尝试访问管理员页面。404 Not Found请求的资源不存在如错误的 URL 或已删除。访问不存在的网页或 API 端点。405 Method Not Allowed请求方法不被允许如用 GET 请求 POST 接口。对只支持 POST 的接口发送 GET 请求。429 Too Many Requests客户端请求频率过高触发限流需配合Retry-After头。爬虫或高频 API 调用被限制。5xx 服务器错误500 Internal Server Error服务器内部错误如代码异常、数据库连接失败。后端服务崩溃或未处理的异常。502 Bad Gateway服务器作为网关时收到上游服务器的无效响应如 Nginx 代理后端失败。反向代理服务器与后端服务通信异常。503 Service Unavailable服务器暂时不可用如过载、维护中需配合Retry-After头。服务器宕机或流量激增导致暂时无法响应。504 Gateway Timeout服务器作为网关时未及时收到上游服务器的响应如超时。反向代理等待后端服务超时。重定向状态码301永久重定向浏览器会缓存新 URL后续请求直接访问新地址302/307临时重定向浏览器每次都会重新请求新 URL307 更严格保留请求方法客户端错误401 vs 403401 是未认证需登录403 是已认证但无权限404资源不存在可能是路径错误或已被删除404 页面是服务器针对不存在的资源请求返回的 HTTP 响应其状态码为 404 Not Found响应正文通常包含自定义的友好错误页面如提示信息、导航链接等既明确告知客户端资源缺失又通过优化用户体验和流量引导降低用户流失同时可通过日志记录辅助排查无效链接问题HTTP/1.1 404 Not Found # 状态行状态码 状态描述 Content-Type: text/html # 响应头声明正文是 HTML 格式 Content-Length: 1024 # 响应头正文长度可选 html # 响应正文自定义的 404 页面内容 headtitle404 - 页面未找到/title/head body h1很抱歉您访问的页面不存在/h1 p可能是链接错误或页面已被删除。/p a href/返回首页/a /body /html服务器错误500通用服务器错误需检查后端日志502/504通常与代理或负载均衡相关需排查上游服务2.2.重定向重定向本质上就是让浏览器或客户端从一个 URL 自动跳转到另一个 URL核心机制HTTP 状态码触发服务器通过返回 3xx 状态码如 301、302告知客户端需要跳转Location 头指定目标响应头中必须包含 Location 字段指向新 URL例如 Location: https://new.example.com客户端自动执行浏览器或 HTTP 客户端如 curl、爬虫收到 3xx 后会自动发起对新 URL 的请求Location 字段是 HTTP 重定向的核心机制当服务器因资源迁移、权限控制等原因无法直接响应请求时会返回 3xx 状态码如 301、302并在响应头中添加 Location 字段指定新地址浏览器或客户端检测到 3xx 后会自动根据 Location 的值发起对新 URL 的请求从而实现服务端引导客户端跳转的完整重定向流程2.3.http响应报头Header作用示例Content-Type关键字段响应体MIME类型Content-Type: text/html; charsetutf-8Content-Length响应体大小(字节)Content-Length: 2048Content-Encoding压缩算法Content-Encoding: gzipSet-Cookie设置Cookie写入 Session IDSet-Cookie: sessionIdxyz; HttpOnlyCache-Control缓存策略Cache-Control: max-age3600Location重定向地址(301/302)Location: /new-pageServer服务器信息Server: nginx/1.18.0Connection连接管理Connection: keep-alive当服务器创建 Session 时会生成一个唯一的Session ID。为了在后续请求中识别这个 ID 属于哪个客户端服务器需要把这个 ID 传递给浏览器保存。默认方式服务器通过Set-Cookie响应头将 Session ID 写入浏览器的Cookie中。后续通信浏览器再次请求时会自动在请求头的Cookie字段里带上这个 Session ID服务器据此找到对应的 Session 数据。如果客户端禁用了 CookieSession 仍可通过URL 重写来工作将 Session ID 直接附加在网页的每个超链接 URL 后面单安全性较低Session ID 易泄露且实现麻烦2.4.Content-Type的重要性和常见值Content-Type告诉浏览器如何解析响应体数据错误设置会导致显示异常或安全问题类型Content-Type说明文本text/html; charsetutf-8HTML页面文本text/plain纯文本文本text/cssCSS样式表脚本application/javascriptJavaScript图片image/jpeg、image/png、image/gif图片资源应用application/jsonJSON数据应用application/xmlXML数据二进制application/octet-stream通用二进制流表单multipart/form-data文件上传3.http版本简介特性HTTP/1.0HTTP/1.1HTTP/2HTTP/3传输协议TCPTCPTCPUDP基于QUIC协议连接模型短连接每次请求新建TCP连接持久连接Keep-Alive默认启用多路复用单连接并行请求多路复用QUIC连接无队头阻塞数据传输格式纯文本纯文本二进制分帧Frames二进制分帧优化版QUIC帧头部压缩不支持不支持HPACK基于霍夫曼编码QPACK动态表优化抗丢包服务器推送不支持不支持支持Server Push支持优化版推送机制请求优先级不支持不支持支持STREAM_DEPENDENCY支持QUIC流优先级控制安全性无内置加密无内置加密依赖HTTPS依赖HTTPSTLS 1.2依赖HTTPS默认支持TLS 1.3典型延迟问题高频繁建立连接中持久连接减少延迟低多路复用避免队头阻塞极低0-RTT连接建立 快速迁移适用场景早期Web传统Web服务高性能Web应用如视频流移动网络/高丢包环境如5G/卫星通信HTTP/1.0 → HTTP/1.1核心改进持久连接解决短连接性能问题支持管道化但未广泛使用新增功能分块传输编码、缓存控制等HTTP/1.1 → HTTP/2核心改进二进制分帧层实现多路复用彻底解决队头阻塞问题头部压缩减少冗余数据传输新增功能服务器推送、请求优先级、流控制HTTP/2 → HTTP/3核心改进用QUIC协议替代TCP通过UDP实现更快的连接建立和迁移能力改进的头部压缩抗丢包性更强。新增功能0-RTT连接建立、连接ID支持移动场景无缝切换4.http连接管理4.1.HTTP 连接管理基础HTTP 是基于 TCP 协议 的应用层协议核心机制包括连接建立与终止通过 TCP 三次握手建立连接四次挥手释放连接请求-响应模型客户端发送请求服务器返回响应后连接可能关闭或复用一个网页包含HTML文档本身及其引用的所有图片、样式、脚本等独立资源每个资源都需要单独发起HTTP请求但在HTTP/1.1长连接或HTTP/2多路复用下多个请求可以复用同一个TCP连接例如用户只访问qq域名不加任何参数服务器会做出响应一般返回首页源代码浏览器做出解释后显示给用户如果是网页有图片资源浏览器就会申请图片资源。短连接时是一个申请一个响应长连接时可以连续的请求与响应4.2.连接类型与演进4.2.1.短连接HTTP/1.0 默认行为每次请求响应后立即关闭 TCP 连接问题高延迟网页含多资源如图片时需多次建立连接重复 TCP 握手和慢启动过程资源浪费频繁创建/销毁连接消耗 CPU 和内存GET /index.html HTTP/1.0 Host: example.com [服务器响应后连接关闭]4.2.2.长连接HTTP/1.1 默认行为通过 Connection: keep-alive 头字段维持连接支持连续请求响应优化复用连接同一连接可传输多个资源减少 TCP 握手开销持久化参数可通过 Keep-Alive: timeout60, max100 控制连接存活时间秒和最大请求数问题队头阻塞同一连接内请求需按顺序处理若某个请求阻塞如大文件下载后续请求需等待GET /index.html HTTP/1.1 Host: example.com Connection: keep-alive [服务器响应后连接保持打开客户端可继续发送其他请求]4.2.3.多路复用HTTP/2 引入行为在单个 TCP 连接内通过 二进制分帧层 并行传输多个请求/响应流优势彻底解决队头阻塞流之间独立调度互不影响高效利用带宽动态调整流优先级如先加载关键资源[HTTP/2 连接建立后客户端可并行发送多个流Stream] Stream 1: GET /style.css Stream 2: GET /script.js [服务器可交错返回响应帧]4.2.4.QUIC 连接HTTP/3 核心行为基于 UDP 的 QUIC 协议实现连接支持 0-RTT 快速建立 和 连接迁移优势抗丢包每个流独立拥塞控制避免全局阻塞移动友好切换网络如 Wi-Fi → 4G时保持连接不断[HTTP/3 首次连接即可发送加密数据无需完整 TLS 握手] QUIC Connection ID: 0x123456 [后续连接可复用 ID实现无缝迁移]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2515139.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…