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

什么是HTTP?什么是HTTPS?

HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是网络通信中最基础的两个协议。下面将从HTTP的定义、特点、报文结构、常见状态码、状态管理机制,以及HTTPS的定义、工作原理入手,最后详细对比两者的区别。


一、什么是HTTP?

HTTP(HyperText Transfer Protocol)是一种用于分布式、协作式、超媒体信息系统的应用层协议。它基于TCP/IP,采用请求-响应模式,是Web数据通信的基础。

1. HTTP的主要特点

  • 请求-响应模式:客户端发送请求,服务器返回响应。
  • 无状态:每个请求都是独立的,服务器默认不保存任何会话信息(但可通过Cookie、Session、Token等机制模拟状态)。
  • 明文传输:数据以明文形式在网络上传输,不提供任何加密,因此容易被窃听、篡改。
  • 基于TCP:默认使用TCP作为传输层协议,默认端口为80。
  • 支持客户端/服务器架构:可传输任意类型的数据,通过MIME类型标识。

2. HTTP报文结构

HTTP报文由三部分组成:起始行、头部字段、消息体。

请求报文
  • 请求行:包含请求方法、请求URL、协议版本
    GET /index.html HTTP/1.1
  • 请求头key: value格式,如Host: www.example.comUser-Agent
  • 请求体:仅当请求方法为POST、PUT等时才有,GET请求无请求体,参数附在URL后
响应报文
  • 状态行:包含协议版本、状态码、状态码描述
    HTTP/1.1 200 OK
  • 响应头key: value,如Content-Type: text/html
  • 响应体:返回的实际数据(HTML、JSON、图片等)

3. 常见的HTTP响应状态码

状态码由三位数字组成,第一位数字表示响应类别:

类别含义示例
1xx信息性状态码(请求已接收,继续处理)100 Continue
2xx成功状态码(请求成功处理)200 OK
3xx重定向状态码(需要进一步操作完成请求)301 Moved Permanently
4xx客户端错误状态码(请求包含语法错误或无法完成)404 Not Found
5xx服务器错误状态码(服务器处理请求时出错)500 Internal Server Error

常见状态码详解

  • 200 OK:请求成功。GET请求的响应体中包含请求的资源。
  • 301 Moved Permanently:永久重定向。请求的资源已被分配新的URI,以后应使用新的URI。
  • 302 Found:临时重定向。本次请求应使用新的URI,但以后仍可能使用原URI。
  • 304 Not Modified:资源未修改。配合条件请求(如If-Modified-Since)使用,告诉客户端可继续使用缓存。
  • 400 Bad Request:请求报文存在语法错误或参数错误,服务器无法理解。
  • 401 Unauthorized:请求需要身份认证。用户需提供有效的认证信息。
  • 403 Forbidden:服务器理解请求但拒绝执行(权限不足)。
  • 404 Not Found:服务器找不到请求的资源。
  • 405 Method Not Allowed:请求方法不被允许(例如对只支持GET的接口使用POST)。
  • 500 Internal Server Error:服务器内部错误,无法完成请求。
  • 502 Bad Gateway:作为网关或代理的服务器从上游服务器收到无效响应。
  • 503 Service Unavailable:服务器暂时超负载或停机维护,无法处理请求。

4. HTTP的无状态与状态管理

由于HTTP本身是无状态的,但Web应用需要记住用户身份,因此引入了多种状态管理机制:

  • Cookie:服务器通过Set-Cookie响应头让客户端保存少量信息(如sessionId),后续请求自动携带Cookie,服务器据此识别用户。
  • Session:服务器端存储用户数据,通常通过Cookie中的sessionId关联。Session可存储在内存、数据库或Redis等缓存中(使用Redis实现共享Session)。
  • JWT(JSON Web Token):一种无状态的身份认证方式。服务器生成包含用户信息的加密Token,客户端保存并在请求时通过Authorization头携带,服务器验证Token即可识别用户,无需存储会话数据。

二、什么是HTTPS?

HTTPS(HyperText Transfer Protocol Secure)并不是一个新的协议,而是HTTP加上SSL/TLS协议的组合。简单说,HTTPS = HTTP + 加密 + 认证 + 完整性保护

1. HTTPS的核心机制

  • 加密:通过SSL/TLS协议对数据进行加密,保证数据在传输过程中不被窃听(机密性)。
  • 身份认证:通过数字证书验证服务器(有时也验证客户端)的身份,防止中间人攻击。
  • 数据完整性:使用消息认证码(MAC)防止数据被篡改。

2. HTTPS工作流程(简化)

  1. 客户端发起HTTPS请求,连接服务器的443端口。
  2. 服务器返回数字证书(包含公钥)。
  3. 客户端验证证书合法性,生成对称加密密钥,并用服务器的公钥加密发送给服务器。
  4. 服务器用私钥解密得到对称密钥。
  5. 双方使用对称密钥进行加密通信。

3. HTTPS的默认端口

  • 默认端口:443

三、HTTP与HTTPS的主要区别

对比项HTTPHTTPS
安全性明文传输,无加密,数据易被窃听、篡改。通过SSL/TLS加密,保证数据机密性、完整性和身份认证。
默认端口80443
是否需要证书不需要证书。需要在服务器部署由CA(证书颁发机构)签发的数字证书。
资源消耗较低,因为无需加密解密过程。较高,因为加密解密需要额外的CPU和内存开销。
连接建立速度较快,TCP三次握手后即可传输数据。较慢,除了TCP握手外,还需进行SSL/TLS握手(多次往返)。
SEO(搜索引擎优化)相对劣势,搜索引擎可能优先收录HTTPS站点。优势,谷歌等搜索引擎会给予HTTPS站点更高的排名权重。
协议标识网址以http://开头。网址以https://开头,且浏览器地址栏常显示安全锁图标。
应用场景适用于不敏感的信息浏览,如新闻、博客等。适用于需要保护隐私和数据的场景,如网上银行、电商、登录等。

四、总结

  • HTTP是Web的基础协议,简单高效,但由于明文传输和无状态特性,存在安全隐患,通常需要通过Cookie、Session、JWT等机制来管理状态。
  • HTTPS在HTTP基础上加入了SSL/TLS协议,通过加密、认证和完整性保护,解决了HTTP的安全缺陷,已成为现代Web服务的标配。无论是个人博客还是电商平台,都应优先采用HTTPS以保护用户数据和隐私。
http://www.cnnetsun.cn/news/1349384.html

相关文章:

  • PPO 训练一个机械臂
  • 习题3.12 另类循环队列
  • SpringBoot3接口优化:一行注解搞定字典与关联字段翻译,告别冗余循环
  • 计院操作系统实验10
  • 从0实现OnCall基于Python语言框架
  • MTK Android12预装APK避坑指南:解决Android.mk配置与三方应用签名冲突
  • 打卡信奥刷题(2967)用C++实现信奥题 P5959 [POI 2018] Plan metra
  • 论文人救星!Paperxie:从初稿到终稿,一站式搞定写作 / 绘图 / 排版 / AI 率
  • V-DyKnow A Dynamic Benchmark for Time-Sensitive Knowledge in Vision Language Models
  • Qt导航栏组件A03:VS Code 风格的图标侧栏
  • 【Rust 语言编程知识与应用:表达式详解】
  • 增程式电动汽车自适应ECMS能量管理策略:基于工况的Matlab实现方案
  • C#全自动多线程上位机源码编程 0,纯源代码。 1,替代传统plc搭载的触摸屏。 2,工控屏幕...
  • comsol数值模拟。 金属合金凝固数值模拟,连铸过程数值模拟,相场流场温度场,坯壳厚度计算
  • 基于改进蛇优化算法(GOSO/ISO)优化极限梯度提升树的时间序列预测
  • 在现代工业自动化中,恒压供水系统是一个常见的应用场景,特别是在高楼大厦、工厂和住宅小区中。今天,我们来聊聊如何用三菱PLC和组态王实现三泵变频恒压供水系统
  • 从统一入口到角色化体验:全面理解 SAP Fiori Launchpad 与 SAP Fiori Apps 的实施逻辑
  • 工业检测实战:同轴光源LFV3系列在金属刻印字符识别中的5个关键技巧
  • Hunyuan MT1.5-1.8B API限流设计:生产环境稳定性保障
  • 华为NAT类型选型指南:为什么你的企业网络应该用NAPT而不是静态NAT?
  • dac/cap/lsm
  • Rust impl关键字实战:从封装到多态的全面解析
  • 别再滥用dynamic了!C#动态类型避坑指南与性能优化技巧
  • 从零到一:基于MaxKB与Ollama构建企业级私有化智能知识库
  • LayUI树形下拉选择器实战:5分钟搞定权限管理菜单的动态加载
  • #训练营# 基于GD32E230与CH342F的便携式多功能调试工具:简易示波器+双串口+交换机Console(DB9/蓝牙)
  • CLIP-GmP-ViT-L-14开源大模型教程:CLIP-GmP变体本地化图文评估新范式
  • 图图的嗨丝造相-Z-Image-Turbo实战落地:短视频团队日更100+张风格统一渔网袜封面图方案
  • Github贡献图变身贪吃蛇:自动化工作流配置全解析
  • Flutter嵌入式ARM64 Linux应用实战:从交叉编译到真机部署