上位机知识篇---HTTPHTTPS等各种通信协议
文章目录
- 前言
- 1. HTTP(HyperText Transfer Protocol)
- 功能
- 传输超文本
- 无状态协议
- 支持多种方法
- 特点
- 明文传输
- 基于TCP
- 简单灵活
- 使用场景
- 示例
- 请求
- 响应
- 2. HTTPS(HTTP Secure)
- 功能
- 加密传输
- 身份验证
- 特点
- 基于SSL/TLS
- 默认端口
- 需要证书
- 使用场景
- 示例
- 请求
- 响应
- 3. FTP(File Transfer Protocol)
- 功能
- 文件传输
- 目录操作
- 特点
- 基于TCP
- 明文传输
- 支持匿名访问
- 使用场景
- 示例
- 连接 FTP 服务器
- 下载文件
- 上传文件
- 4. SFTP(SSH File Transfer Protocol)
- 功能
- 安全文件传输
- 目录操作
- 特点
- 基于SSH
- 加密传输
- 需要认证
- 使用场景
- 示例
- 连接 SFTP 服务器:
- 下载文件
- 上传文件
- 5. SMTP(Simple Mail Transfer Protocol)
- 功能
- 发送邮件
- 中继邮件
- 特点
- 基于TCP
- 明文传输
- 需要认证
- 使用场景
- 示例
- 发送邮件
- 6. POP3(Post Office Protocol version 3)
- 功能
- 接收邮件
- 删除邮件
- 特点
- 基于TCP
- 明文传输
- 简单易用
- 使用场景
- 示例
- 接收邮件
- 7. IMAP(Internet Message Access Protocol)
- 功能
- 接收邮件
- 管理邮件
- 特点
- 基于TCP
- 支持同步
- 适合多设备
- 使用场景
- 示例
- 接收邮件
- 8. DNS(Domain Name System)
- 功能
- 域名解析
- 分布式数据库
- 特点
- 基于UDP
- 高效
- 层次化
- 使用场景
- 示例
- 查询域名
- 9. SNMP(Simple Network Management Protocol)
- 功能
- 监控设备
- 配置设备
- 特点
- 基于UDP
- 简单灵活
- 支持多种操作
- 使用场景
- 示例
- 查询设备信息
- 总结
前言
本文仅仅简单介绍了HTTP、HTTPS等各种通信协议的功能特点以及使用。
1. HTTP(HyperText Transfer Protocol)
HTTP 是一种用于传输超文本(如 HTML)的应用层协议,是万维网(WWW)的基础。
功能
传输超文本
传输超文本:用于在客户端(浏览器)和服务器之间传输网页内容。
无状态协议
无状态协议:每次请求都是独立的,服务器不会保存客户端的状态。
支持多种方法
支持多种方法:如 GET、POST、PUT、DELETE 等。
特点
明文传输
明文传输:数据以明文形式传输,容易被窃听和篡改。
基于TCP
基于 TCP:默认使用 80 端口。
简单灵活
简单灵活:易于实现和扩展。
使用场景
- 网页浏览。
- API 接口调用。
示例
请求
GET /index.html HTTP/1.1
Host: www.example.com
响应
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>...</html>
2. HTTPS(HTTP Secure)
HTTPS 是 HTTP 的安全版本,通过 SSL/TLS 加密传输数据。
功能
加密传输
加密传输:防止数据被窃听和篡改。
身份验证
身份验证:通过证书验证服务器身份,防止中间人攻击。
特点
基于SSL/TLS
基于 SSL/TLS:数据在传输过程中加密。
默认端口
默认端口 443。
需要证书
需要证书:服务器需要配置 SSL/TLS 证书。
使用场景
- 需要安全传输的场景(如登录、支付)。
- 保护用户隐私和数据安全。
示例
请求
GET /index.html HTTP/1.1
Host: www.example.com
响应
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>...</html>
(数据在传输过程中是加密的)
3. FTP(File Transfer Protocol)
FTP 是一种用于文件传输的协议。
功能
文件传输
文件传输:支持文件的上传和下载。
目录操作
目录操作:支持创建、删除、列出目录等操作。
特点
基于TCP
基于 TCP:默认使用 21 端口(控制)和 20 端口(数据)。
明文传输
明文传输:数据以明文形式传输。
支持匿名访问
支持匿名访问:允许匿名用户访问。
使用场景
- 文件共享和传输。
- 网站内容上传。
示例
连接 FTP 服务器
ftp ftp.example.com
下载文件
get remote_file local_file
上传文件
put local_file remote_file
4. SFTP(SSH File Transfer Protocol)
SFTP 是基于 SSH 的文件传输协议。
功能
安全文件传输
安全文件传输:通过 SSH 加密传输文件。
目录操作
目录操作:支持创建、删除、列出目录等操作。
特点
基于SSH
基于 SSH:默认使用 22 端口。
加密传输
加密传输:数据在传输过程中加密。
需要认证
需要认证:需要用户名和密码或 SSH 密钥。
使用场景
- 需要安全传输文件的场景。
- 远程文件管理。
示例
连接 SFTP 服务器:
sftp username@hostname
下载文件
get remote_file local_file
上传文件
put local_file remote_file
5. SMTP(Simple Mail Transfer Protocol)
SMTP 是一种用于发送电子邮件的协议。
功能
发送邮件
发送邮件:将邮件从客户端发送到服务器。
中继邮件
中继邮件:将邮件从一个服务器转发到另一个服务器。
特点
基于TCP
基于 TCP:默认使用 25 端口。
明文传输
明文传输:数据以明文形式传输。
需要认证
需要认证:支持用户名和密码认证。
使用场景
- 邮件发送。
- 邮件服务器之间的通信。
示例
发送邮件
telnet smtp.example.com 25
HELO client.example.com
MAIL FROM:<sender@example.com>
RCPT TO:<recipient@example.com>
DATA
Subject: Test
This is a test email.
QUIT
6. POP3(Post Office Protocol version 3)
POP3 是一种用于接收电子邮件的协议。
功能
接收邮件
接收邮件:从服务器下载邮件到客户端。
删除邮件
删除邮件:下载后可以选择删除服务器上的邮件。
特点
基于TCP
基于 TCP:默认使用 110 端口。
明文传输
明文传输:数据以明文形式传输。
简单易用
简单易用:适合离线阅读邮件。
使用场景
- 邮件接收。
- 离线邮件阅读。
示例
接收邮件
telnet pop3.example.com 110
USER username
PASS password
LIST
RETR 1
QUIT
7. IMAP(Internet Message Access Protocol)
IMAP 是一种用于接收和管理电子邮件的协议。
功能
接收邮件
接收邮件:从服务器下载邮件到客户端。
管理邮件
管理邮件:支持在服务器上管理邮件(如移动、删除、标记)。
特点
基于TCP
基于 TCP:默认使用 143 端口。
支持同步
支持同步:客户端和服务器保持同步。
适合多设备
适合多设备:适合在多台设备上管理邮件。
使用场景
- 邮件接收和管理。
- 多设备同步。
示例
接收邮件
telnet imap.example.com 143
A1 LOGIN username password
A2 SELECT INBOX
A3 FETCH 1 BODY[TEXT]
A4 LOGOUT
8. DNS(Domain Name System)
DNS 是一种用于将域名解析为 IP 地址的协议。
功能
域名解析
域名解析:将域名转换为 IP 地址。
分布式数据库
分布式数据库:全球分布的域名解析系统。
特点
基于UDP
基于 UDP:默认使用 53 端口。
高效
高效:快速响应域名解析请求。
层次化
层次化:域名系统采用层次化结构。
使用场景
- 域名解析。
- 网络访问。
示例
查询域名
nslookup www.example.com
9. SNMP(Simple Network Management Protocol)
SNMP 是一种用于网络设备管理的协议。
功能
监控设备
监控设备:监控网络设备的状态和性能。
配置设备
配置设备:远程配置网络设备。
特点
基于UDP
基于 UDP:默认使用 161 端口。
简单灵活
简单灵活:易于实现和扩展。
支持多种操作
支持多种操作:如 GET、SET、TRAP 等。
使用场景
- 网络设备管理。
- 监控和故障排查。
示例
查询设备信息
snmpget -v2c -c public hostname sysDescr.0
总结
协议 功能 特点 使用场景
HTTP 传输超文本 明文传输、无状态 网页浏览、API 调用
HTTPS 安全传输超文本 加密传输、身份验证 安全网页浏览、支付
FTP 文件传输 明文传输、支持目录操作 文件共享、网站上传
SFTP 安全文件传输 加密传输、基于 SSH 安全文件传输
SMTP 发送邮件 明文传输、需要认证 邮件发送
POP3 接收邮件 明文传输、简单易用 邮件接收、离线阅读
IMAP 接收和管理邮件 支持同步、适合多设备 邮件管理、多设备同步
DNS 域名解析 高效、层次化 域名解析
SNMP 网络设备管理 简单灵活、支持多种操作 网络设备监控和配置
这些协议在互联网和网络通信中扮演着重要角色,根据具体需求选择合适的协议可以提高效率和安全性。
相关文章:
上位机知识篇---HTTPHTTPS等各种通信协议
文章目录 前言1. HTTP(HyperText Transfer Protocol)功能传输超文本无状态协议支持多种方法 特点明文传输基于TCP简单灵活 使用场景示例请求响应 2. HTTPS(HTTP Secure)功能加密传输身份验证特点基于SSL/TLS默认端口需要证书 使用…...
Android实现漂亮的波纹动画
Android实现漂亮的波纹动画 本文章讲述如何使用二维画布canvas和camera、矩阵实现二、三维波纹动画效果(波纹大小变化、画笔透明度变化、画笔粗细变化) 一、UI界面 界面主要分为三部分 第一部分:输入框,根据输入x轴、Y轴、Z轴倾…...
大白话React Hooks(如 useState、useEffect)的使用方法与原理
啥是 React Hooks 在 React 里,以前我们写组件主要用类(class)的方式,写起来有点复杂,尤其是处理状态和副作用的时候。React Hooks 就是 React 16.8 之后推出的新特性,它能让我们不用写类,直接…...
【无标题】ABP更换MySql数据库
原因:ABP默认使用的数据库是sqlServer,本地没有安装sqlServer,安装的是mysql,需要更换数据库 ABP版本:9.0 此处以官网TodoApp项目为例 打开EntityFrameworkCore程序集,可以看到默认使用的是sqlServer&…...
掌握Git:从入门到精通的完整指南
Git是什么? Git是一个分布式版本控制系统,最初由Linus Torvalds在2005年为管理Linux内核开发而创建 它的主要功能是跟踪文件的更改,协调多个开发者之间的工作,并帮助团队高效地管理项目代码。Git不仅适用于大型开源项目…...
Windows上使用go-ios实现iOS17自动化
前言 在Windows上运行iOS的自动化,tidevice对于iOS17以上并不支持,原因是iOS 17 引入新通信协议 RemoteXPCQUIC,改变了 XCUITest 的启动方式。 一、go-ios的安装 1、安装命令:npm i go-ios 2、安装完成后输入命令which io…...
服务器硬防的优势有哪些?
服务器硬防也可以称为硬件防火墙,是一种专门用来保护网络不会受到未经授权访问所设计的设备,硬件防火墙是一个独立的设备,同时也是集成在路由器或者是其它网络设备中的一部分,下面,小编就来为大家介绍一下服务器硬防的…...
Grok3使用体验与模型版本对比分析
文章目录 Grok的功能DeepSearch思考功能绘画功能Grok 3的独特功能 Grok 3的版本和特点与其他AI模型的比较 最新新闻:Grok3被誉为“地球上最聪明的AI” 最近,xAI公司正式发布了Grok3,并宣称其在多项基准测试中展现了惊艳的表现。据官方消息&am…...
JavaScript——前端基础3
目录 JavaScript简介 优点 可做的事情 运行 第一个JavaScript程序 搭建开发环境 安装的软件 操作 在浏览器中使用JavaScript文件 分离JS 使用node运行JS文件 语法 变量与常量 原生数据类型 模板字符串 字符串的内置方法 数组 对象 对象数组和JSON if条件语…...
零基础学习机器学习分类模型
下面将带你通过一个简单的机器学习项目,使用Python实现一个常见的分类问题。我们将使用著名的Iris数据集,来构建一个机器学习模型,进行花卉品种的分类。整个过程会包含: 原理介绍:机器学习的基本概念。数据加载和预处…...
Spring 源码硬核解析系列专题(十):Spring Data JPA 的 ORM 源码解析
在前几期中,我们从 Spring 核心到 Spring Boot、Spring Cloud、Spring Security 和 Spring Batch,逐步揭示了 Spring 生态的多样性。在企业级开发中,数据访问是不可或缺的部分,而 Spring Data JPA 通过简化 JPA(Java Persistence API)操作,成为主流的 ORM 框架。本篇将深…...
视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决
EasyDSS视频直播点播平台是一个功能全面的系统,提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用,能够接收无人机设备的实时视频流,实现无人机视频推流直播和巡检等多种应用。 最近&…...
Oracle23版本 创建用户 报 00959和65096错误解决办法
00959错误解决办法,用户名必须已 c##或者C##开头 65096错误解决办法,创建用户名时去掉DEFAULT TABLESPACE smallrainTablespace这个属性 附上oracle 23版本创建表空间和用户语句; sqlplus sys as sysdba CREATE TABLESPACE smallrainOrac…...
Vue3 中 defineOptions 学习指南
在 Vue 3.3 及之后的版本中,defineOptions 是一个重要的宏(macro),主要用于在 <script setup> 语法糖中声明组件的选项(Options),解决了传统 <script setup> 无法直接定义组件选项的…...
简单说一下什么是RPC
部分内容来源:JavaGuide RPC是什么 RPC是远程调用 RPC的原理 RPC的五个部分 为了能够帮助小伙伴们理解 RPC 原理,我们可以将整个 RPC 的核心功能看作是下面 5 个部分实现的: 客户端(服务消费端):调用…...
Pany-v2:LFI漏洞探测与敏感文件(私钥窃取/其他)自动探测工具
地址:https://github.com/MartinxMax/pany 关于Pany-v2 Pany-v2 是一款 LFI(本地文件包含)漏洞探测工具,具备自动识别敏感文件的能力。它能够利用 LFI 漏洞检测并提取 id_rsa 私钥、系统密码文件以及其他可能导致安全风险的敏感信息。该工具…...
北京大学DeepSeek与AIGC应用(PDF无套路下载)
近年来,人工智能技术飞速发展,尤其是大模型和生成式AI(AIGC)的突破,正在重塑各行各业的生产方式与创新路径。 北京大学联合DeepSeek团队推出的内部研讨教程《DeepSeek与AIGC应用》,以通俗易懂的方式系统解…...
AWS SDK for Java 1.x 403问题解决方法和原因
问题表现 使用AWS SDK for Java 1.x访问S3,已经确认文件存在,且具有权限,仍然出现403 Forbidden应答。 解决方法 升级到AWS SDK for Java 2.x。 问题原因 AWS签名机制严格依赖请求的精确路径格式,任何URI的差异(如…...
Vue进阶之Vue2源码解析
Vue2源码解析 源码解析目录解析package.json入口查找入口文件确定vue入口this.\_init_ 方法$mount 挂载方法Vue.prototype._renderVue.prototype._updateVue.prototype._patch vue2 vue3 源码解析 目录解析 vue2.6之后的版本都做的是兼容Vue3的内容,2.6版本前的内…...
unity lua属性绑定刷新
我们现在有一个 角色属性类叫heroModel,内容如下,当heroModel中的等级发生变化的时候,我们需要刷新界面显示等级信息,通常我们是在收到等级升级成功的协议的时候,发送一个事件,UI界面接受到这个事件的时候,刷新一下等级…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_t
ngx_conf_t 定义在src/core/ngx_core.h typedef struct ngx_conf_s ngx_conf_t;ngx_conf_s 定义在 src/core/ngx_conf_file.h struct ngx_conf_s {char *name;ngx_array_t *args;ngx_cycle_t *cycle;ngx_pool_t *po…...
gtest 和 gmock讲解
Google Test(gtest)和 Google Mock(gmock)是 Google 开发的用于 C 的测试框架和模拟框架,以下是对它们的详细讲解: Google Test(gtest) 简介 Google Test 是一个用于 C 的单元测试框…...
Ubuntu20.04安装Redis
目录 切换到root用户 使用 apt install redis 安装redis 修改配置文件 编辑 重新启动服务器 使用Redis客户端连接服务器 切换到root用户 如果没有切换到root用户的,切换到root用户。 使用 apt install redis 安装redis 遇到y/n直接y即可。 redis安装好之…...
利用 DeepSeek 总结运维知识库的总结报告
一、背景 在运维工作中,知识库是重要的知识沉淀与共享工具。随着公司业务的发展,运维涉及的系统、设备和技术日益复杂,原有的运维知识库内容繁杂、缺乏条理,难以高效检索和利用。为了提升知识库的可用性,我尝试借助 D…...
Go基于协程池的延迟任务调度器
原理 通过用一个goroutine以及堆来存储要待调度的延迟任务,当达到调度时间后,将其添加到协程池中去执行。 主要是使用了chan、Mutex、atomic及ants协程池来实现。 用途 主要是用于高并发及大量定时任务要处理的情况,如果使用Go协程来实现每…...
一个原教旨的多路径 TCP
前面提到过 ECMP 和 TCP 之间的互不友好,pacing 收益和中断开销的互斥,在事实上阻碍了 packet-based LB 的部署,也限制了交换机,服务器的并发性能,同时潜在增加了 bufferbloat 的概率,而适用 packet-based …...
OSPF BIT 类型说明
注:本文为 “OSPF BIT 类型 | LSA 类型 ” 相关文章合辑。 机翻,未校。 15 OSPF BIT Types Explained 15 种 OSPF BIT 类型说明 Rashmi Bhardwaj Distribution of routing information within a single autonomous system in larger networks is per…...
如何获取mac os 安装盘
发现虚拟机VirtualBox支持Mac虚拟,就想尝试一下。但是发现Mac的安装盘特别难拿到,因此留档。 第一种方法 在mac环境下,使用softwareupdate命令来获取mac安装,能获得当前设备支持的系统。 使用这个命令:/usr/sbin/soft…...
【深度学习】强化学习(RL)-A3C(Asynchronous Advantage Actor-Critic)
A3C(Asynchronous Advantage Actor-Critic)详解 A3C(Asynchronous Advantage Actor-Critic) 是 深度强化学习(Deep Reinforcement Learning, DRL) 领域的重要算法,由 DeepMind 在 2016 年提出。…...
vue的双向绑定是怎么实现的
Vue.js 的双向绑定是通过 数据劫持(Data Observation) 和 发布-订阅模式(Publish-Subscribe Pattern) 实现的。具体来说,Vue 使用了以下核心技术: 数据劫持:通过 Object.defineProperty 或 Prox…...
