【计算机网路】HTTP与HTTPS通信协议 📅 发布时间:2026/7/13 19:31:55 👁️ 浏览次数: 文章目录一、HTTP协议互联网的基础通信协议1.1 什么是HTTP1.2 HTTP的发展历程1.3 HTTP的特性二、HTTP协议的组成2.1 HTTP报文格式2.1.1 请求报文2.1.2 响应报文2.2 URL资源的唯一标识2.3 HTTP请求方法2.4 报头Header2.5 HTTP状态码三、HTTP的实际应用3.1 浏览器地址栏 HTML标签3.2 HTML表单form四、HTTPS4.1 为什么需要HTTPS4.2 HTTPS的加密机制4.2.1 对称加密4.2.2 非对称加密4.2.3 证书与CA认证4.3 HTTPS的完整工作流程4.4 HTTP与HTTPS的区别一、HTTP协议互联网的基础通信协议1.1 什么是HTTPHTTPHyperText Transfer Protocol超文本传输协议是一种应用层协议诞生于1991年如今已发展为互联网最主流的通信协议。它基于TCP/IP协议族工作负责规范客户端与服务器之间的数据传输格式和交互流程。这里的“超文本”不仅指文本数据如HTML、CSS还包括图片、视频、音频等二进制资源。我们打开一个网站时浏览器通过HTTP协议向服务器发送请求服务器返回响应响应内容经浏览器解析后就变成了我们看到的网页界面。1.2 HTTP的发展历程HTTP协议历经多次迭代不断优化性能和功能HTTP/0.91991最初版本仅支持GET方法只能传输纯文本HTML。HTTP/1.01997新增POST、HEAD等方法支持多种数据类型图片、音频等引入HTTP头部字段。HTTP/1.11999目前应用最广泛的版本支持长连接Keep-Alive、管道化请求、Chunked编码等解决了1.0版本的性能瓶颈。HTTP/2.0基于二进制帧传输支持多路复用、头部压缩、服务器推送大幅提升传输效率。HTTP/3.0正在完善中基于UDP协议实现解决了TCP协议的队头阻塞问题Google、Facebook等大厂已率先支持。1.3 HTTP的特性无状态协议本身不记录客户端的历史交互信息每次请求都是独立的。如需保持状态如登录状态需通过Cookie、Session等机制实现。基于请求-响应模式客户端主动发送请求服务器被动返回响应不存在服务器主动向客户端推送数据的情况。文本协议HTTP报文是明文的文本格式便于调试和理解但也存在安全隐患。二、HTTP协议的组成2.1 HTTP报文格式HTTP通信的基本单位是报文分为请求报文和响应报文两者结构相似均由“首行头部空行正文”四部分组成。2.1.1 请求报文以访问CSDN页面为例首行格式为方法 URL 协议版本请求头Header由多个键值对组成每个键值对占一行键和值用: (空格)分隔头部用于描述请求的属性如数据类型、缓存策略等。http请求头中键的取值和值的取值都是固定的空行用于分隔头部和正文是HTTP协议的强制要求避免出现“粘包问题”。正文Body可选部分用于传输请求数据如POST请求的表单数据长度由Content-Length头部字段指定。2.1.2 响应报文首行格式为协议版本 状态码 状态码描述响应头Header与请求头部格式一致包含响应的属性空行分隔头部和正文。正文Body服务器返回的实际数据可以是HTML页面、JSON数据、图片等。2.2 URL资源的唯一标识我们俗称的“网址”其实是URLUniform Resource Locator统一资源定位符它唯一标识互联网上的一个资源。URL的完整格式如下http://www.example.com:80/dir/index.htm?uid1#ch1各部分含义协议方案名如http、https也可以是jdbc:mysql访问MySQL数据库等。服务器地址www.example.com可以是域名或IP地址域名会通过DNS解析为IP。服务器端口号:80HTTP默认端口80HTTPS默认443省略时使用默认端口。带层次的文件路径/dir/index.htm想要访问的是某个主机IP确定上某个程序端口号确定管理的某个资源在服务器上的存储路径。层次可以理解为目录。查询字符串[Querry String]?uid1键值对结构用于向服务器传递额外参数键值对之间用分隔键与值用分割。片段标识#ch1用于页面内跳转不会发送到服务器。常用于文档类网站。2.3 HTTP请求方法方法说明特点GET获取资源无请求正文参数通过URL传递可缓存幂等POST提交数据有请求正文参数通过正文传递不可缓存非幂等PUT更新资源用于全量更新资源幂等DELETE删除资源用于删除服务器资源幂等HEAD获取响应头部与GET类似但仅返回响应头部无正文OPTIONS询问支持的方法用于获取服务器支持的HTTP方法GET与POST的区别GET和POST没有本质区别大多数情况都可以混用语义不同GET用于“获取”资源POST用于“提交”数据。数据传输方式GET一般没有body通过Query String传递数据POST通过正文传递。缓存特性GET请求可被浏览器缓存POST请求不可缓存。幂等性GET请求建议设计为多次执行结果一致幂等POST请求多次执行可能产生不同结果如重复提交订单。POST典型使用场景登录、上传。请求中带有正文的正文就是保存了当前上传的数据内容2.4 报头Header报头中常见的键值对Host表示服务器主机的地址和端口号。绝大情况下Host与URL中的IP地址和端口号属性是一致的。在HTTPS协议中传输过程涉及到加密url部分不会被加密而header和body部分会被加密Content-Length表示body中数据长度单位是字节。对于TCP来说一个链接可以发送多个请求而服务器收到的数据需要区分没有body的http请求读到空行就可以认为是结束了有body的http请求先读取首行和header读到空行解析header中Content-Length的值再读固定的字节长度Content-Type表示body中数据格式。类型取值浏览器解析方式HTMLtext/html解析其中的标签把标签转换为界面显示CSStext/css解析其中的选择器和属性把指定内容应用到页面样式上JSapplication/javascript通过JS引擎执行JS中的逻辑JSONapplication/json浏览器不会做任何处理由对应的JS也就是程序员写的逻辑来处理图片image/png(jpg)按照图片的二进制格式解析出来处理2.5 HTTP状态码状态码用于表示服务器对请求的处理结果分为5大类类别含义常见状态码1XX信息性状态码100 Continue继续2XX成功状态码200 OK请求成功、204 No Content无内容3XX重定向状态码301 永久重定向、302 临时重定向、304 Not Modified缓存命中4XX客户端错误状态码400 Bad Request请求参数错误、403 Forbidden访问拒绝、404 Not Found资源不存在5XX服务器错误状态码500 Internal Server Error服务器内部错误、504 Gateway Timeout网关超时常见状态码场景200 OK最常见表明请求成功服务器返回了请求的资源。302 临时重定向常用于登录成功后跳转到主页。404 Not FoundURL对应的资源不存在可能是地址输入错误。403 Forbidden服务器拒绝访问通常是未登录或无权限。418 I am a teapot我是一个茶壶 彩蛋500 Internal Server Error服务器代码执行出错如程序bug。三、HTTP的实际应用在实际开发中我们可以通过多种方式构造HTTP请求以下是常见场景3.1 浏览器地址栏 HTML标签浏览器地址栏输入URL直接发送GET请求。HTML标签link加载CSS、img加载图片、script加载JS等标签会自动发送GET请求。3.2 HTML表单formform标签是HTML中用于提交数据的标签支持GET和POST方法GET 请求formactionhttps://www.example.com/apimethodGETinputtypetextnameusernameplaceholder用户名inputtypepasswordnamepasswordplaceholder密码inputtypesubmitvalue登录/formPOST 请求formactionhttps://www.example.com/apimethodPOSTinputtypetextnameusernameplaceholder用户名inputtypepasswordnamepasswordplaceholder密码inputtypesubmitvalue登录/formaction指定请求的URL。method指定请求方法GET/POST。input标签的name属性作为请求参数的keyvalue为用户输入的内容。四、HTTPS4.1 为什么需要HTTPSHTTP协议的最大问题是明文传输数据在传输过程中可能被篡改、窃取或劫持如运营商劫持、黑客攻击。HTTPSHTTP Secure正是为解决HTTP的安全问题而生它在HTTP基础上增加了SSL/TLS加密层实现数据传输的机密性、完整性和身份认证。4.2 HTTPS的加密机制HTTPS结合了对称加密和非对称加密的优点既保证安全性又兼顾传输效率。4.2.1 对称加密特点使用同一个密钥进行加密和解密运算速度快但密钥传输存在安全风险密钥被窃取则加密失效。示例按位异或运算明文a1234与密钥key8888异或得到密文9834密文再与密钥异或可还原明文。4.2.2 非对称加密特点使用一对密钥公钥私钥公钥可公开私钥仅持有者拥有。公钥加密的密文只能用私钥解密私钥加密的密文只能用公钥解密。运算速度慢但密钥传输安全。应用场景用于协商对称加密的密钥避免密钥明文传输。4.2.3 证书与CA认证为解决“公钥伪造”问题中间人替换服务器公钥HTTPS引入了数字证书和CACertificate Authority认证服务器向CA机构申请数字证书证书包含服务器公钥、域名、有效期等信息并由CA机构用私钥签名。客户端获取证书后通过操作系统内置的CA公钥验证签名确认证书合法性未篡改、未过期。只有验证通过的证书客户端才会使用证书中的公钥进行后续通信。4.3 HTTPS的完整工作流程客户端向服务器发送HTTPS请求请求中包含支持的加密算法和哈希算法。服务器返回数字证书包含公钥和选定的加密/哈希算法。客户端验证证书合法性检查证书有效期是否过期。检查证书发布机构是否受信任操作系统内置信任的CA。用CA公钥解密证书签名与本地计算的证书哈希值对比确认证书未被篡改。证书验证通过后客户端生成随机对称密钥R用服务器公钥加密R发送给服务器。服务器用私钥解密获取对称密钥R。后续通信客户端和服务器均使用对称密钥R加密/解密数据实现安全传输。4.4 HTTP与HTTPS的区别特性HTTPHTTPS传输方式明文传输SSL/TLS加密传输端口80443安全性无身份认证、数据易被篡改/窃取有身份认证、数据机密性和完整性保障性能无加密开销性能略高加密/解密有开销性能略低证书无需证书需向CA申请数字证书
Gemma-3-4B-IT RAI 1.7.1 NPU 4K模型深度解析:从量化到部署的完整流程 Gemma-3-4B-IT RAI 1.7.1 NPU 4K模型深度解析:从量化到部署的完整流程 【免费下载链接】gemma-3-4b-it_rai_1.7.1_npu_4K 项目地址: https://ai.gitcode.com/hf_mirrors/amd/gemma-3-4b-it_rai_1.7.1_npu_4K Gemma-3-4B-IT RAI 1.7.1 NPU 4K是一款专为AMD R… 2026/7/13 19:31:55
AMD-Quark量化工具实战:从Step-3.5-Flash到MXFP4的完整转换流程 AMD-Quark量化工具实战:从Step-3.5-Flash到MXFP4的完整转换流程 【免费下载链接】Step-3.5-Flash-MXFP4 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Step-3.5-Flash-MXFP4 想要在AMD MI350/MI355硬件上高效部署Step-3.5-Flash大语言模型吗࿱… 2026/7/13 19:31:55
如何用BiliTools一站式管理你的B站资源:免费跨平台工具箱完全指南 如何用BiliTools一站式管理你的B站资源:免费跨平台工具箱完全指南 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 还在为B站优质内容无法离线观看而烦恼吗?想要系统性地收藏喜欢… 2026/7/13 19:29:54
5步免费解锁Wand专业版:告别订阅费的终极完整指南 5步免费解锁Wand专业版:告别订阅费的终极完整指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为Wand(原WeMod&… 2026/7/13 21:14:23
Arduino Pro IDE多项目管理指南:高效组织大型项目的7个技巧 Arduino Pro IDE多项目管理指南:高效组织大型项目的7个技巧 【免费下载链接】arduino-pro-ide The Arduino IDE for advanced users and developers. Experimental alpha version. 项目地址: https://gitcode.com/gh_mirrors/ar/arduino-pro-ide Arduino Pro… 2026/7/13 21:14:23
微商城开发软件排行|2026综合实力总榜 据艾瑞咨询2026年报告显示,2026年国内SaaS商城小程序市场规模将突破860亿元,同比增长35.7%,零售行业商家小程序渗透率已达74.3%。全网商城小程序数量突破380万,越来越多的商家意识到:选对开发软件,比选便宜… 2026/7/13 21:12:22
Unity FSM框架设计:从零构建可扩展的AI行为状态机 1. 什么是有限状态机(FSM)?想象一下你正在玩一个动作游戏,敌人AI会根据你的行为做出不同反应:当你远离时它会巡逻,发现你时开始追击,靠近后发动攻击,受伤时又会逃跑。这种智能行为切… 2026/7/13 21:10:22
【小程序计算机毕业设计案例】移动端校园心理测评预约与干预系统的设计与实现 大学生心理健康自查与专业咨询小程序设计(程序+文档+讲解+定制) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/13 21:10:22
小程序 毕设项目:高校通勤校车智能预约管理系统的设计与实现 基于移动端的校园校车出行调度服务系统 (源码+文档,讲解、调试运行,定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/13 21:08:21
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/13 9:31:08
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55