我们来系统地介绍一下 TCP/IP、HTTP 和 HTTPS。它们之间的关系可以概括为:​​HTTP 和 HTTPS 是运行在 TCP/IP 基础网络架构之上的具体应用协议​​。

为了更直观地理解它们之间的关系,我们可以参考下面的网络分层模型:

flowchart TDsubgraph A [应用层 - 定义应用数据的格式与功能]direction LRA1[HTTP]A2[HTTPS<br>=HTTP + TLS/SSL]endsubgraph T [传输层 - 建立“端到端”的可靠连接]T1[TCP]endsubgraph N [网络层 - 负责“点对点”的地址与路由]N1[IP]endsubgraph L [网络接口层 - 负责在物理网络中传输帧]L1[以太网 Ethernet<br>Wi-Fi 等]endA -- 承载于 --> TT -- 承载于 --> NN -- 承载于 --> L

下面我们来详细解释每一部分。


1. TCP/IP - 互联网的基石

TCP/IP 不是一个协议,而是一个​​协议族​​(Protocol Suite),它是整个互联网通信的基础架构。

  • ​设计思想​​:采用分层模型(如上图所示),每一层负责不同的通信功能,层与层之间相互独立。这种设计使得网络更具灵活性和可扩展性。
  • ​核心组成​​:
    • ​IP (Internet Protocol - 网际协议)​​:位于网络层。它主要负责两件事:
      1. ​寻址​​:为互联网上的每一台设备分配一个唯一的逻辑地址,即 ​​IP 地址​​(如 192.168.1.1)。
      2. ​路由​​:将数据包从一个网络设备传输到另一个设备。它会把数据分割成一个个的“包”(Packet),并尽力将它们送到目的地。但IP协议本身是​​不可靠​​的,它不保证数据包一定能到达、也不保证按顺序到达。
    • ​TCP (Transmission Control Protocol - 传输控制协议)​​:位于传输层。它在IP协议的基础上,提供了​​可靠​​的、​​面向连接​​的通信服务,弥补了IP协议的不足。
      • ​可靠性​​:通过确认机制、重传机制、校验和等来确保数据完整无误地到达。
      • ​面向连接​​:在传输数据前,会先进行“三次握手”建立连接,传输结束后再进行“四次挥手”断开连接。
      • ​顺序保证​​:对数据包进行排序,确保接收方收到的数据顺序和发送方一致。
    • ​比喻​​:如果把数据传输比作寄信:
      • ​IP协议​​负责的是在信封上写地址,并把信件扔进邮筒。它只管送,不保证对方一定能收到。
      • ​TCP协议​​则像是一家可靠的快递公司,它确认地址无误(建立连接),如果信件在途中丢失,它会重新再寄一份(重传),并且确保收件人按正确的顺序收到所有信件(排序)。

​简单总结:TCP/IP 是底层负责通信的基础设施,它定义了数据如何打包、寻址、传输、路由和接收,确保数据能从一台计算机的某个程序准确无误地送达另一台计算机的某个程序。​


2. HTTP - Web通信的语言

HTTP (HyperText Transfer Protocol - 超文本传输协议) 是构建在 TCP/IP 基础之上的​​应用层协议​​。它是万维网(WWW)的数据通信基础。

  • ​作用​​:它定义了客户端(通常是Web浏览器)和服务器之间如何交换信息。它专门负责传输​​超文本​​(如HTML网页)、图片、CSS、JavaScript等Web内容。
  • ​工作模式​​:基于经典的​​请求-响应模型​​。
    1. 客户端(浏览器)向服务器的特定端口(默认80)发起一个 ​​HTTP请求​​。
    2. 服务器处理请求后,返回一个 ​​HTTP响应​​。
  • ​特点​​:
    • ​无状态​​:每个请求都是独立的,服务器不会记住上一次的请求是谁发的。这简化了服务器设计,但需要通过Cookie、Session等技术来跟踪用户状态(如登录状态)。
    • ​明文传输​​:HTTP传输的数据(包括密码、信用卡号等敏感信息)都是未加密的明文。这意味着数据在传输过程中可能被中间人窃听或篡改,​​非常不安全​​。

​简单总结:HTTP 是Web的“普通话”,浏览器和服务器都用它来“对话”,但它说话是公开的,谁都能听见,不安全。​


3. HTTPS - 安全的HTTP

HTTPS (HyperText Transfer Protocol Secure - 超文本传输安全协议) 不是一个新的协议,而是 ​​HTTP over SSL/TLS​​ 的简称。

  • ​本质​​:它在HTTP和TCP之间加入了一个​​安全层​​(SSL/TLS协议)。
  • ​作用​​:这个安全层主要提供三个核心安全功能:
    1. ​加密​​:通过SSL/TLS证书对通信内容进行加密,防止数据在传输过程中被窃听。即使被截获,攻击者看到的也只是乱码。
    2. ​完整性校验​​:通过摘要算法验证数据在传输过程中是否被篡改。
    3. ​身份认证​​:通过SSL证书验证网站服务器的真实性,防止用户访问到假冒的钓鱼网站。(浏览器地址栏的锁标志“🔒”就代表此认证已通过)。
  • ​工作端口​​:默认使用​​443​​端口。
  • ​与HTTP的关系​​:HTTPS = HTTP + 加密 + 认证 + 完整性保护。

​简单总结:HTTPS 是穿着盔甲、戴着防伪面具的HTTP。它用加密来防窃听,用认证来防假冒,用校验来防篡改,极大地提升了Web通信的安全性。​​ 现在,HTTPS已经成为所有网站的标配,尤其是涉及用户隐私和支付的网站。


总结与关系

特性TCP/IPHTTPHTTPS
​层级​网络层、传输层应用层应用层(HTTP + SSL/TLS)
​角色​互联网通信的​​基础架构​Web内容的​​传输协议​​安全版​​的Web内容传输协议
​安全性​不直接提供安全保证​不安全​​,明文传输​安全​​,加密传输
​功能​寻址、路由、建立可靠连接定义Web请求和响应的格式在HTTP基础上增加加密、认证
​比喻​高速公路和交通规则在高速公路上运输的​​明信片​在高速公路上运输的​​加密保险箱​

​最终关系可以理解为:​
​HTTPS​​ 是在 ​​HTTP​​ 之上增加了安全保障,而 ​​HTTP​​ 和 ​​HTTPS​​ 又是依靠底层的 ​​TCP/IP​​ 协议来最终完成数据传输的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96553.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96553.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/96553.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【30】C#实战篇——获取路径下的文件名(不包含路径和扩展名),文件名由连续的数字编号+连续的字母编号组成,并分离出文件名数字部分和英文部分

文章目录1 要求2 分析 与 实现1 要求 写一个函数&#xff0c;获取路径下的文件名&#xff08;不包含路径和扩展名&#xff09;&#xff0c;并分离出文件名fileName &#xff0c;文件名编号SN&#xff0c;文件名前缀WMT &#xff1b; 输入文件路径&#xff0c;解析出不带"…

EasyExcel部署Docker缺少字体报错

报文 java.lang.NullPointerException: nullat sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)at sun.awt.FontConfiguration.init(FontConfiguration.java:107)at sun.awt.…

从“收款工具”到“智能中枢”:AI如何重构POS系统的技术架构与商业价值?

引⾔:从交易终端到智能中枢的⼗字路⼝ 在现代商业的繁忙图景中 ,销售点( Point of Sale, POS) 系统⻓期以来被视为交易流程的终点 ——⼀个简单完成收款、打印票据的⼯具。然⽽ ,这⼀认知正在被迅速颠覆。 随着数字经济的深 化 ,POS系统已演变为连接顾客、 商品与服务的…

unity以战斗截图并加上微信二维码分享

开发游戏时&#xff0c;会遇到战斗结算&#xff0c;成就等奖励界面&#xff0c;鼓励玩家分享到朋友圈&#xff0c;这时通常会在图片上加上一些内容&#xff0c;比如游戏Logo&#xff0c;二维码下载等内容。现在分享一下我制作游戏分享图片的过程。第一步首先截图&#xff0c;截…

新手向:实现验证码程序

本文将从零开始&#xff0c;通过一个简单的验证码程序。即使你没有任何编程基础&#xff0c;也能跟着这篇文章一步步学习。第一章&#xff1a;Java开发环境搭建1.1 安装JDK要开始Java编程&#xff0c;首先需要安装Java开发工具包(JDK)。JDK是Java开发的核心环境&#xff0c;包含…

使用Flask实现接口回调地址

使用Flask实现接口回调地址 一、接口回调的基本概念 接口回调&#xff08;Callback&#xff09;是一种异步通信机制&#xff0c;当某个事件发生时&#xff08;如支付完成、任务结束&#xff09;&#xff0c;服务提供方会主动调用预先配置的URL&#xff08;即回调地址&#xff0…

vue2+jessibuca播放h265视频

文档地址&#xff1a;http://jessibuca.monibuca.com/api.html#background 1,文件放在public中 2,在html中引入 3&#xff0c;子组件 <template><div :id"container id"></div> </template><script> export default {props: [url,…

Behavioral Fingerprinting of Large Language Models

Behavioral Fingerprinting of Large Language Models Authors: Zehua Pei, Hui-Ling Zhen, Ying Zhang, Zhiyuan Yang, Xing Li, Xianzhi Yu, Mingxuan Yuan, Bei Yu Deep-Dive Summary: 行为指纹识别大型语言模型 摘要 当前的大型语言模型&#xff08;LLMs&#xff09;基…

某互联网大厂的面试go语言从基础到实战的经验和总结

### 一面 #### 1. **实习项目**- 可以简要描述你的项目经历&#xff0c;最好是与职位相关的项目。如果是与技术栈相关的项目&#xff0c;比如 Go、C、Golang 或 Python&#xff0c;重点讲述项目中的技术细节和你如何解决问题。#### 2. **Go学习多久**- 说明你学习 Go 语言的时间…

掌握Java控制流:编程决策的艺术

控制流语句是用来 控制程序执行顺序 的关键工具&#xff0c;它们允许你根据不同的条件执行不同的代码块&#xff0c;或者重复执行某段代码。这使得程序能够根据输入和情况做出智能的决策&#xff0c;而不仅仅是线性的执行。1. 条件语句 (Conditional Statements)条件语句允许你…

Docker 安装 MySQL 和 Redis 完整指南

前言 在开发环境中,使用 Docker 安装数据库服务是一种快速、便捷的方式。本文将详细介绍如何在 macOS 上使用 Docker 安装 MySQL 和 Redis,并解决国内网络访问 Docker Hub 的问题。 环境准备 macOS 系统 Docker Desktop 已安装 网络连接 配置 Docker 国内镜像源 方法一:通…

Spring Boot---自动配置原理和自定义Starter

1.自动配置原理2.自定义starter①dmybatis-spring-boot-autoconfigure步骤一&#xff1a;先创建项目步骤二&#xff1a;导入响应的依赖步骤三&#xff1a;创建自动配置的配置类步骤四&#xff1a;创建配置文件项目结构②dmybatis-spring-boot-starter步骤一&#xff1a;先创建项…

【后端】MySQL 常用 SQL 语句大全

整理一份 MySQL 常用 SQL 语句大全&#xff0c;从基础操作到进阶查询&#xff0c;都涵盖。方便日常开发和学习参考。1. 数据库操作-- 查看所有数据库 SHOW DATABASES;-- 创建数据库 CREATE DATABASE db_name;-- 删除数据库 DROP DATABASE db_name;-- 使用数据库 USE db_name;--…

[iOS] 单例模式的深究

文章目录前言一、什么是单例模式二、单例模式的优缺点优点缺点三、模式介绍1.懒汉模式&#xff08;GCD & 互斥锁&#xff09;GCD 写法互斥锁写法&#xff08;双重检查锁&#xff09;2.饿汉模式总结懒汉式 互斥锁&#xff08;Mutex&#xff09;**懒汉式 GCD (dispatch_onc…

解决Discord.py中的/help命令问题

在使用Discord.py开发机器人时,常常会遇到一些常见的问题,比如命令找不到或者命令功能不符合预期。本文将详细探讨如何解决在使用@bot.slash_command定义/help命令时遇到的问题,并提供一个完整的实例来展示如何正确设置这个命令。 问题描述 当你在Discord机器人中输入/hel…

解决VSCode默认F5配置无法启动调试器的问题

前几天做笔试&#xff0c;最后一题代码有点问题&#xff0c;习惯性地按了个F5启动gdb发现居然爆炸了&#xff0c;报错找不到编译出来的二进制文件&#xff0c;看着像是默认配置的问题&#xff0c;由于时间紧迫最后只能用输出大法解决。 感觉不可理喻&#xff0c;几年前调程序的…

webrtc弱网-LossBasedBweV2类源码分析与算法原理

1. 核心功能LossBasedBweV2是WebRTC Google Congestion Control (GoogCC) 算法套件中的第二代基于丢包的带宽估计器。它的核心功能是&#xff1a;带宽估计&#xff1a; 根据网络数据包的丢失情况&#xff0c;估算当前网络路径可用的带宽上限。其核心假设是&#xff1a;当发送速…

AI代理化检索:智能信息获取新范式

代理化检索(Agentic Retrieval)是一种由AI代理自主管理的信息检索范式,通过动态规划、工具调用和多步推理提升复杂查询的处理能力。其核心机制、技术实现和应用特点如下: 一、核心机制 自主决策循环 代理通过循环执行"规划-行动-观察"流程处理查询: 规划阶段:…

Android Studio中的各种Java版本区别

Android Studio中的各种Java版本 创建一个项目&#xff0c;app模块的build.gradle.kts默认配置如下&#xff1a; plugins {alias(libs.plugins.android.application)alias(libs.plugins.kotlin.android) }android {namespace "cn.android666.javaversiontest"comp…

ubuntu新增磁盘扩展LV卷

登录平台 login as: wqbboy wqbboy172.17.2.86s password: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/proSyst…