专栏首页Vegout​其他的几个应用层协议

​其他的几个应用层协议

FTP协议

中文全称是文件传输协议,其实本质上来说,HTTP协议也属于文件传输协议,但两者有着巨大的差异。FTP描述的场景:

FTP客户端和FTP服务器之间,通过一定规则进行文件传输,这些规则就是FTP的内容。对于用户来说,一般都会有一个可视化的界面,进行操作,也就是图中的FTP用户接口。FTP运行机制是这样的:

  1. 客户端在21号端口与服务器建立一个TCP连接,通过这个连接向服务器发送控制指令。
  2. 当服务器收到一个文件传输的命令后,服务器会在20号端口与客户端建立一个TCP数据连接,用来传送数据。
  3. 传送完成,关闭TCP数据连接,继续第2步。

由此可以看出FTP与HTTP主要是如下不同:

  1. HTTP控制信息与数据信息通过同一个TCP连接进行发送的,而FTP建立了独立的TCP控制连接和TCP数据连接。
  2. HTTP本身是不会保存用户状态的,而FTP需要时刻记录每一个用户的状态,比如他目前在哪个层级目录下浏览等,也因此限制了FTP同时维持的会话总数。

电子邮件应用的核心:STMP协议

电子邮件应用的核心是STMP协议,说明还有其他协议扮演了非核心的角色,这些协议包括:HTTP、POP3、IMAP协议。下图是电子邮件工作的整体流程。

发送方通过SMTP协议将邮件发送到自己的邮件服务器,邮件服务器再将邮件通过SMTP协议发送到对方的邮件服务器,收件方最终通过POP3、IMAP或者HTTP协议将邮件拉去到自己本地。邮件服务器是一个共享的服务器,一般由用户的ISP维护,如公司或者大学。

STMP协议:这是个建立在TCP上的协议。

  1. 首先客户端在25号端口建立一个到服务器的TCP连接,如果建立失败,则等待进行重试。
  2. 建立成功之后,进行数据交付。
  3. 如果还有其他数据进行交付,继续进行,否则关闭连接。

由此过程可以看出,STMP和HTTP虽然都是在两个主机之间传送文件,但有一个很大的不同,HTTP是一个拉协议,主要是拉取信息。而SMTP是一个推协议,是向其他主机推送信息。也因此,对于接收方来说,就不能使用STMP从自己的邮件服务器上获取邮件了,于是POP3、IMAP就派上用场了,POP3是一个很简单的协议,就是进行一定的身份验证之后,拉取自己的邮件,IMAP更加复杂一点,记录了用户的状态信息,从而也可以提供更为复杂的功能。但现在更多的是使用HTTP协议,为用户提供了一种基于web的电子邮件,让用户可以使用浏览器对自己的邮件进行管理。但是,邮件服务的核心,即邮件服务器之间的通信,仍然使用的是SMTP协议。

本文分享自微信公众号 - Vegout(t10244201),作者:naget

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 和HTTP的简单接触

    http是一个应用层的协议,协议就是大家约定好的共同遵守的某个格式。HTTP请求的格式就是这个样子

    naget
  • 编码和解码

    概念各种编码ASCII编码各个国家的编码统一编码从mysql中读取数据的编解码历程

    naget
  • WEB的核心:HTTP协议

    HTTP全称“超文本传输协议”,是一个应用层协议,对Web的请求应答格式进行了规定。HTTP由两个程序实现,一个客户端程序,一个服务端程序。两者通过交换HTTP...

    naget
  • Linux下搭建FTP服务器

    版权声明:本文为博主原创文章,转载请注明博客地址: ...

    zy010101
  • Vscode十大实用插件

    下面是老袁的 VSCode 效果图,用起来6的飞起。大家先关注这个身高170体重170的程序员,然后看最新一期的视频中的效果

    疯狂的技术宅
  • 网络协议笔记(一):HTTP协议基础知识

    1、HTTP协议是超文本传输协议,也就是 HyperText Transfer Protocol。 2、HTTP是一个用在计算机世界里的协议。它使用计算机能够理...

    free赖权华
  • docker学习(6) docker中搭建java服务及nginx反向代理

    上图中mysql容器的搭建见上篇博客,service1/2为java rest service,创建脚本如下:

    菩提树下的杨过
  • [接口测试 - 基础篇] 01 你应该了解的协议基础

    概述 对于很多软件测试从业人员而言,可能并不具备协议相关基础,更别说去独立的构建协议抓包环境、分析协议报文,并在实际测试过程中结合业务进行接口级自动化测试。 下...

    苦叶子
  • 【干货】Android利用SurfaceView结合科大讯飞修改语音实别UI

    最近刚换了三星的Note9,深度体验了一下Bixby的语音功能,觉得挺不错的,而且上周的人工智能大会上,分布屏幕两边的分别是科大讯飞和腾讯提供的服务:讯飞听见和...

    Vaccae
  • [接口测试 - 基础篇] 01 你应该了解的协议基础

    概述 对于很多软件测试从业人员而言,可能并不具备协议相关基础,更别说去独立的构建协议抓包环境、分析协议报文,并在实际测试过程中结合业务进行接口级自动化测试。 下...

    苦叶子

扫码关注云+社区

领取腾讯云代金券