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

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

目录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协议】(hppt请求与响应细节、http版本与连接管理)

目录 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.长连接&#xff08…...

贵州辣椒酱:一份榜单,供参考

贵州辣椒酱:一份榜单,供参考贵州是全国最大的辣椒生产基地之一。辣椒酱在当地人的日常饮食中,算是比较基础的调味品。近几年,贵州辣椒酱的市场认知度逐渐提高,品牌也多了起来。2026年,贵州省辣椒产业协会发…...

从二极管整流到晶体管可变电阻:拆解一个学生设计的AGC电路反馈环工作原理

从二极管整流到晶体管可变电阻:拆解一个学生设计的AGC电路反馈环工作原理 在模拟电路设计的浩瀚海洋中,自动增益控制(AGC)电路犹如一位隐形的调音师,默默维持着电子信号的稳定输出。对于电子爱好者和高年级本科生而言&…...

第5章,[标签 Win32] :GDI 函数调用

专栏导航 上一篇:第5章,[标签 Win32] :GDI 的结构与原理 回到目录 下一篇:无 本节前言 对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点&a…...

技术人的孤独:深夜Debug时的思考

——软件测试从业者的精神图鉴一、凌晨三点的独幕剧场屏幕冷光刺破黑暗,键盘敲击声在空旷办公室回荡。当世界沉入睡眠,测试工程师却深陷与Bug的无声博弈:物理空间的隔绝:无人协作的深夜,缺失即时反馈的对话机制&#x…...

mPDF实战指南:5个核心场景深度解析PHP到PDF的高效转换方案

mPDF实战指南:5个核心场景深度解析PHP到PDF的高效转换方案 【免费下载链接】mpdf PHP library generating PDF files from UTF-8 encoded HTML 项目地址: https://gitcode.com/gh_mirrors/mp/mpdf mPDF作为一款强大的PHP PDF生成库,专注于将UTF-8…...

AI Agent高薪岗位盘点:哪些方向最赚钱

第一,也是最重要的,别光看书、别光听课,你得动手干出一个东西来。 如果实在不知道咋整,可以直接抄知学堂新出的 「AILLM应用开发」 ,里面很多实战项目case,自己跟着教程做写到简历里,糊弄hr够用…...

OmenSuperHub:让你的游戏本性能飙升,告别臃肿官方软件

OmenSuperHub:让你的游戏本性能飙升,告别臃肿官方软件 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为官方Omen Gaming Hub的…...

AI Agent开发者如何准备秋招:时间线与重点

简单说就是你拿到offer后能不能快速上手干活儿做项目,至于学历背景,本科以上基本满足大部分公司的绝大部分职业方向门槛了。下面我直接把我当时走通的路线讲明白,你照这个节奏去做,基本不会偏。 刚开始我也是无从下手,…...

从零玩转ESP32-S3-EYE人脸检测:手把手教你基于ESP-WHO的human_face_detect示例创建自己的项目

从零构建ESP32-S3-EYE人脸检测项目:基于ESP-WHO的实战指南 当ESP32-S3-EYE开发板首次握在手中时,那颗集成了240MHz双核处理器、8MB PSRAM和OV2640摄像头的芯片,仿佛在无声地邀请开发者进入嵌入式视觉的世界。对于已经熟悉ESP-IDF开发环境的工…...

别再自己造轮子了!用这个Vue3+Java开源WMS,30分钟搞定仓库管理系统部署

30分钟极速部署:基于Vue3Java开源WMS的实战指南 当业务部门突然提出仓库管理需求时,技术团队常面临两难选择:自研周期长、成本高,而商业系统又存在预算和定制化难题。今天介绍的这套开源WMS解决方案,正是为解决这种困境…...

深入TC3xx时钟分配单元(CCU):手把手教你为CAN、GPT等外设配置精准时钟(附MCCAN 80MHz实例)

TC3xx时钟分配单元深度实战:从外设需求反推CCU配置的工程方法论 当你在TC3xx平台上调试CAN通信时,是否遇到过这样的困境:明明按照手册配置了波特率参数,但实际通信速率总是存在偏差?这往往源于时钟配置的细微误差。作为…...

Android HAL升级避坑指南:从HIDL切换到Stable AIDL时,如何正确配置FCM和SEPolicy?

Android HAL升级实战:从HIDL迁移到Stable AIDL的完整避坑手册 当Android HAL架构从HIDL向Stable AIDL演进时,系统集成工程师常会在编译部署阶段遭遇各种"隐形陷阱"。本文将从实际项目经验出发,深度解析兼容性矩阵配置、SEPolicy权限…...

某讯滑块验证码VMP架构探秘-从字节码到指令集

1. 某讯滑块验证码VMP架构初探 第一次看到某讯滑块验证码的VMP架构时,我就像发现了一个黑盒子。这个黑盒子会吃掉JavaScript代码,吐出一堆难以理解的字节码。最有趣的是,这个黑盒子还会变形——它的指令集居然会动态变化!这让我想…...

Re:思考·重建·记录 现代C++ C++11篇 (三) 深度解构:可变参数模板、类功能演进与 STL 的新版图

◆ 博主名称: 晓此方-CSDN博客 大家好,欢迎来到晓此方的博客。 ⭐️现代C系列个人专栏: 插曲:现代C ⭐️Re系列专栏:我们思考 (Rethink) 我们重建 (Rebuild) 我们记录 (Record) 文章目录概要&序論一&#xff0c…...

STM32G4霍尔有感运行实战:从零配置到电流环闭环调试(附完整代码)

STM32G4霍尔传感器电机控制实战:从电流环配置到闭环调试全解析 霍尔传感器在无刷直流电机(BLDC)控制中扮演着关键角色,它通过检测转子位置为控制系统提供关键的反馈信息。STM32G4系列微控制器凭借其高性能定时器和丰富的外设资源&…...

PDS 2020.3 联合 ModelSim 仿真避坑指南:从编译库到解决 GRS_INST 报错的全流程

PDS 2020.3 联合 ModelSim 仿真实战避坑手册:从环境配置到疑难解析 在数字电路设计流程中,仿真验证环节往往决定着项目成败。当PangoDesign Suite 2020.3(简称PDS)遇上ModelSim这对黄金组合时,理论上应该实现无缝衔接的…...

深入WebRTC客户端架构:手把手解析基于libwebrtc.a与ZLMediaKit的C++推拉流核心模块设计

WebRTC客户端架构深度解析:从模块设计到实战优化 在实时音视频通信领域,WebRTC已经成为事实上的标准技术栈。不同于简单的API调用,一个工业级可用的WebRTC客户端需要精心设计的架构来应对复杂的网络环境和多样化的业务需求。本文将带您深入We…...

大营销平台 —— 抽奖前置规则过滤

一、前言上一期我们实现了权重配置的装配,这一期我们将实现抽奖业务的前置规则过滤,这里主要涉及了两个规则,第一个是黑名单(要求这些用户100积分只能抽到1积分),第二个是权重抽奖(在幸运值达到…...

Android 13手势导航卡顿?深入剖析Launcher3最近任务(Recents)的动画性能优化点

Android 13手势导航卡顿?深入剖析Launcher3最近任务(Recents)的动画性能优化点 在Android 13中,手势导航已经成为主流交互方式,但不少开发者反馈在Launcher3的最近任务(Recents)界面会出现动画卡…...

FRCRN语音增强工具实操手册:批量处理WAV文件的Shell脚本示例

FRCRN语音增强工具实操手册:批量处理WAV文件的Shell脚本示例 你是不是也遇到过这样的烦恼?手头有一堆录音文件,背景里混杂着键盘声、空调声、甚至窗外的车流声,想提取清晰的人声简直是一场耳朵的折磨。或者,你正在处理…...

海南大学交友平台开发实战 day10(后端向前端输出_前端读取数据全流程联调+日志调试落地)

海南大学交友平台开发实战 day10(后端向前端输出/前端读取数据全流程联调日志调试落地) 大家好,欢迎来到海南大学交友平台开发实战系列的第十天!在前九天的开发中,我们已完成登录注册、UI 布局、Flask 后端基础搭建、S…...

KosxPDF批量PDF盖章工具|支持骑缝章+电子章+多文件合并,高效智能文档签章解决方案

温馨提示:文末有联系方式功能亮点:全能PDF批量签章管理 KosxPDF电子文档批量骑缝章管理工具,专为高效处理PDF签章需求设计。 它不仅支持单文件或多文件批量加盖普通电子章,更可智能生成跨页连续骑缝章,确保文档完整性与…...

如何利用国内LLM对Obsidian的笔记进行分析

Win11 下用 Obsidian OpenCode 智谱 GLM 的安装与配置教程适用场景:不能方便走代理,但希望把 Obsidian 接到大模型,用于笔记整理、润色、总结与后续工具扩展。 本教程基于我们已经跑通的方案:Obsidian Agent Client OpenCode A…...

STL迭代器:核心概念与实战指南

迭代器基础概念迭代器是STL的核心组件之一,提供了一种统一的方式来访问容器中的元素。迭代器类似于指针,可以指向容器中的某个元素,并支持解引用、递增等操作。迭代器分为五种类型:输入迭代器、输出迭代器、前向迭代器、双向迭代器…...

CloudSaver 神器上手就会,一键搜全网资源 + 转存网盘!cpolar 内网穿透实验室第 731 个成功挑战

软件名称 CloudSaver(网盘资源整合 转存神器) 操作系统支持 支持群晖 NAS(全型号适配)、Windows/macOS(Docker 环境下)、Linux(Docker 部署),适配 PC 端 移动端&…...

【Claude Code 源码解析教程】第1章:Claude Code 项目介绍

本章将全面介绍 Claude Code 项目的产品定位、技术栈选型、项目代号含义以及核心功能特性,帮助读者建立对项目的整体认知。目录 1.1 产品定位与业务目标 1.1.1 产品定位 1.1.2 核心价值主张 1.1.3 业务目标 1.1.4 目标用户 全栈软件开发者 DevOps / SRE 工程…...

【读书笔记】《活着》

余华《活着》——解读整理一、如何理解《活着》的文学性质 很多读者会觉得《活着》“不够现实”——福贵的妻子家珍、父母等家人形象过于完美,情节过于戏剧性。要解开这个疑惑,首先需要纠正一个基本认知:《活着》是一部"现实主义底色的寓…...

学术是一场马拉松吗

最近录用一篇 EJOR,虽然是一件比较高兴的事,却没有那么的喜悦。因为根据我阅读多篇 EJOR 论文的经验,这篇投稿论文有 EJOR 的实力,即使被拒稿了,我会转投 COR 或者领域内其他不错的杂志,晚点发表而已。 目前…...

OriginPro与Python联用(Chapter 1)

Python在数据处理方面相较于Origin和Excel等工具具有比较显著的优势,特别是当流程重复或者数据量比较大的时候,但是Origin所见即所得的绘图方式往往更加容易上手一些,所以将二者结合起来使用可以同时使用他们的长处。这里我们主要介绍在外部使…...