FTP-HTTP-HTTPS的学习总结

news2024/11/14 16:56:49

FTP协议的学习

一,学习的要点

 ftp的掌握总体架构、了解状态机

请求响应的格式、常用操作码及响应的含义

PORT与PASV的区别、断点续传

上传、下载文件的基本流程

   1,FTP的架构主要有两种形式

 

  UserPI(用户解释器)和ServerPI(服务器解释器)建立控制连接

  UserDTP(用户数据传输过程)和ServerDTP(服务器数据传输过程)建立数据连接

  用户的指令驱动数据传输

  服务器的响应让用户端知道FTP过程的状态

 

         这是一个用户端与两个FTP服务器建立控制连接,两个服务器之间建立数据连接的架构。用户端向两个服务器发送指令,来控制两个服务器之间的数据传输。

        下面以一个例子说明用户端怎么通过指令来控制服务器A和B之间的数据传输,以A向B发送数据为例子

C->A:Connect(C与A建立控制连接)

C->B:Connect(C与B建立控制连接)

C->A:PASV(C与A进入被动连接的模式)

A->C:227+(IP+端口)

C->B:PORT(A的IP+端口)

B->C:200 okay

C->A:STOR

C->B: RETR

2,FTP请求的命令

   FTP请求的命令分为三类:访问控制命令,传输参数命令,服务命令

   访问控制命令主要与账户登录和退出及改变工作目录有关的命令

   传输参数命令主要是传输IP地址和端口号,及文件传输的类型,格式参数

   服务命令主要是进行数据的上传和下载,断点上传和下载及重命名等

   具体命令见RFC文档

3,响应码

   响应码由三位数字组成,每一位的数字都代表不同的类型

   1yz:positive preliminary reply

      预备应答,常见的就是数据上传和下载命令发出后,会有一个1yz的响应,告诉对方可以进行数据传输了,传输完成后回应2yz响应

   2yz:positive completion reply

      完成回答,成功接收命令并执行了命令

   3yz:positive intermediate reply

      中间应答,这个我个人理解就是先暂时给你一个中间答复,不说命令执行成功了还是失败了,具体还要看你后面的表现。常见的就是登陆过程,当用户端发送了USER 命令后,服务器端会给一个3yz的响应,告诉用户端还需要密码验证

   4yz: transient negative completion reply

      暂时拒绝回答,当服务器端忙不过来的时候,会给一个4yz的应答,这时候服务器会预留一个时间,让用户端可以重发这个命令

   5yz:permanent negative completion reply

      永久拒绝回答,收到这个回复,意味着用户端的命令没有执行

第二位数字也有各自的意义,这里就不一一列出了

HTTP协议的学习

一,学习的要求

请求响应的格式

各个操作码及响应的含义

常用头域字段的含义

相对URL与绝对URL的区别

   1,请求的格式,方法,及请求的头域

Request = request-line

             *((general-header|

Request-header|

Entity-header) CRLF)

              CRLF

[entity-body]

     Request-line = Method sp Request-URI sp HTTP-version CRLF

Method方法主要有8个方法

      OPTIONS:请求服务器告知其支持的各项技能  

              OPTIONS * HTTP/1.1  通常服务器会回应ALLOW:GET,HEAD(只是打个比方)

      GET:从服务器获取资源

      HEAD:与GET方法类似,只不过回应的时候不带实体,只返回头域

      POST,PUT:这两个方法一起讲,因为他们都是向服务器发送数据,网上也有很多讲这两个方法的不同点,在RFC文档上,两者最根本的区别在于其请求的URI意义不一样,PUT方法是不会将数据apply到另一个资源上去,post方法可用于在存在的资源上注释,通过追加操作来扩展数据库,发送新闻等

      DELETE:删除资源

      TRACE:记录经过的代理服务器

      CONNETC:这个与代理服务器相连时使用

  2,响应的格式,响应码

     Response = status -line

              *((general-header|

response-header|

entity-header)  CRLF)

CRLF

[entity-body]

      Status-line = HTTP-VERSION SP STATUS-CODE SP REASON-PHRASE CRLF

     响应吗

     1XX:informational  请求接收了,但需要后续的

     2XX:success  请求被成功接收,理解并且执行了

     3XX:redirection 重定向

     4XX:client error

     5XX:  server error

 HTTPS协议的学习

 

由于HTTP是明文传输,在HTTP的基础上,为了保证传输数据的保密性,加强安全,发展出了HTTPS。在传输数据之前,会进行TLS协议的握手,双方约定加密的过程。针对上面的图进行解释。

1,首先客户端会发送一个clienthello给服务器端

   Clienthello包含的内容有:

确定使用的协议版本号

生成一个随机数,设为R1,用于后面密码的生成。

SessionID,若为初次握手,则该项为0

密码套件,客户端会列出所支持的加密方法

压缩方法

2,服务器端接收到客户端的clienthello后也会发送一个serverhello

  Serverhello的作用是:

确定使用的协议版本

生成一个SessionID

生成一个随机数R2

确定使用的加密方法

确定使用的压缩方法

3,服务器端向接收端发送证书certificate

4,  服务器端发送serverkeyexchange报文,该条报文的作用是携带额外的密码交换的参数。

5,serverhellodone服务器端告诉接收端,hello阶段结束

6,客户端接收服务器端的证书,验证证书的有效性

7,客户端利用相关算法生成第三个随机数为pre-master-secret,利用RSA(非对称加密)或者(DH对称加密),将该数发给服务器端

8,至此两端都拥有三个随机数,利用这三个参数生成mater-secret。

9,客户端发送changecipherspec报文告诉服务器端,接下来进入数据加密传输方式

10,客户端发送finish报文,其实这个报文是用主密钥加密,给服务器端,看服务器端能不能将这个报文解密,也是在正式传输数据之前进行一次演练

11,服务器端也利用三个随机数生成master-secret,并对客户端发送过来的finish报文进行解密,并发送changecipherspec报文告诉客户端进入加密方式

12,服务器端同样加密一段数据发给客户端,即finish报文

13,客户端解密服务器端的finish报文,上述所有步骤成功的话

14,进入数据加密传输

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

『面试篇』之网络知识串联(一):DNS域名解析、TCP的建立与关闭

趁着马上就要面试的这个机会,将网络相关的知识进行一个串联复习。前端网络会在面试中遇到的问题其实并不是很多,核心的内容主要是TCP建立的的三次握手、TCP断开的四次挥手、DNS解析的过程、以及前端跨域等。话不多说,我们直接进入正题。 一、…

【STL十八】算法——不修改序列的操作(for_each、count、find、equal、search)

【STL十八】算法——不修改序列的操作(for_each、count、find、equal、search) 一、简介二、头文件三、分类四、不修改序列的操作1、for_each2、count、count_if3、find、find_if4、euqal5、search 前言:在前面我们讲解容器和函数对象时&…

X.25,帧中继(FR),ATM三种分组交换系统

X.25、帧中继(FR)、ATM 是流行的三种分组交换系统,它们具有不同的特点。 两个术语: DTE(Data Terminal Equipment) ,数据终端设备,如我们的个人电脑、手机。 DCE(Data Circuit Equipment) ,数据…

【STM32】基础知识 第十二课 GPIO

【STM32】基础知识 第十二课 GPIO 概述GPIO 简介GPIO 模式GPIO 特点GPIO 配置GPIO 操作施密特触发器案例 概述 本文小白我将来介绍通用输入与输出, GPIO (General-Purpose Input/Output) 在单片机中的应用, 以及如何配合和食用 GPIO 来实现各种功能. GPIO 简介 GPIO 是单片机…

十三、共享内存

文章目录 一、什么是共享内存(一)共享内存的定义(二)共享内存的原理(三)共享内存的理解 二、为什么要有共享内存三、共享内存怎么进行(一) 共享内存的数据结构(二&#x…

【Redis系列】Redis布隆过滤之8亿大数据集实战

序言 即便平凡的日子仿佛毫无波澜,但在某个特定的时刻,执着的努力便会显现出它的价值和意义。 文章标记颜色说明: 黄色:重要标题红色:用来标记结论绿色:用来标记一级重要蓝色:用来标记二级重要 …

SPC Control Chart Tools for WPF 3.1 Crack

使用 WPF 的 SPC 控制图工具,将变量控制图(X-Bar R、X-Bar Sigma、单个范围、中值范围、EWMA、MA、MAMR、MAMS 和 CuSum 控制图)、属性控制图(p、np、c、u 和 DPMO 控制图)、频率直方图和帕累托图添加到 WPF 和 WPF We…

物理机:显卡3080 环境Centos7.9 如何检查及安装显卡驱动

环境: 硬件服务器:I5处理器, 显卡:3080 12G 等。 目标: 测试是否安装显卡。 如何找到正确的驱动版本。 安装显卡正确的显卡驱动。 一、检查是否正确安装显卡: # 检查使用什么型号的显卡: yum…

淄博烧烤,怎么就“出圈”了-也是机器视觉行业职场中的态度:少一点套路,多一些真诚,少一点计较,多一些宽容

我认为淄博烧烤之所以火爆,是因为它代表了一种淄博人的态度,一种对生活的热爱和对客人的真诚。 我认为淄博烧烤之所以火爆,是因为它代表了一种淄博人的态度,一种对生活的热爱和对客人的真诚。 我想更重要的一点,淄博烧…

使用NineData定制企业级数据库规范

1. 为什么需要数据库规范? 在企业级应用中,数据库是非常重要的一部分,它们存储着公司的核心数据,包括客户信息、订单、产品信息等等。如果这些数据没有得到妥善的管理,那么就会导致数据不一致、数据丢失、数据泄露等问…

涨知识!细数银行卡三要素 API 的 N 种验证方法

引言 银行卡三要素验证 API 是一种基于姓名、身份证号码和银行卡号等三种信息的验证服务,主要用于绑定银行卡时校验银行卡是否为该身份信息所有、手机号是否为银行卡绑定手机号。 银行卡三要素 API 的验证方法 银行卡三要素 API 的验证原理是通过与银行或银联网络…

k8s二进制搭建|ETCD + Flannel | 单节点部署 | 多节点的部署|dashbord的部署

k8s二进制搭建|ETCD Flannel | 单节点部署 | 多节点的部署|dashbord的部署 二进制搭建 Kubernetes v1.201 初始化环境2 部署 docker引擎3 在mster 192.168.10.10上操作4 在 node01 192.168.10.20节点上操作5 在 node02 192.168.10.30节点上操作6 检查etcd群集状态7 部署 Maste…

SpringBoot——入门程序的简单介绍

简单介绍: 在之前我们创建了一个基础的SpringBoot的程序,可以看到,我们只是启动了一个Java程序,但是它启动了一个Tomcat的服务器。其实在这里面他还启动了很多的服务,只不过这些服务我们都没有用到,我们就…

基于氢储能的热电联供型微电网优化调度方法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【Slack+Claude保姆级安装教程】

🚀 AI破局先行者 🚀 🌲 AI工具、AI绘图、AI专栏 🍀 🌲 如果你想学到最前沿、最火爆的技术,赶快加入吧✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆&am…

探究问答系统的实现原理及其应用

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

clickhouse的嵌套数据结构Tuple、Array与Nested类型介绍和使用示例

文章目录 Tuple类型Array类型Nested类型使用示例单独使用Tuple数组嵌套 Array(Tuple)Nested类型 生产使用:分组查询 Tuple类型 Tuple是ClickHouse数据库中的一种数据类型,它允许在一个字段中存储由不同数据类型组成的元组(tuple)。元组可以包含任意数量…

RFID技术在智能制造领域的发展

RFID技术在智能制造领域的发展 RFID技术是构建智能制造的基础,自RFID技术普及以来,工业产线、零售、物流、交通、医疗、制造等领域,都能看到到RFID应用的身影。就智能制造领域来说,通过RFID技术可以帮助制造企业开展各项市场需求…

shell函数数组

shell函数数组 数组的表达方式 (30 20 10 60 50 40) #数组0 1 2 3 4 5 #下标下标从0开始,中间可以断开 一: 数组的定义方法 方法一 数组名(value0 value1 value2 ...)方法二 数组名&#xff08…

网络路径下倾斜模型生产流程-模型s3c化

网络路径下倾斜模型生产流程-模型s3c化 将osgb模型处理文件拷贝到osgb模型文件夹下 在osgb模型文件夹下,新建与工程同名文件夹,然后将原文件夹下所有文件拷贝到YNPE27文件夹下, E:\YNPE27\CC\YNPE27\Productions\Production_2\YNPE27 打开o…