【计算机网络自顶向下】第二章:HTTP、FTP

这篇博客深入解析了应用层协议HTTP和FTP。HTTP是一个无状态协议,使用TCP进行连接,提供了非持续和持续连接的方式。HTTP请求报文和响应报文的结构、状态码以及cookie机制进行了详细介绍。而FTP是一个有状态协议,通过两个独立的TCP连接(控制连接和数据连接)传输数据,提供交互式访问和文件传输服务。

前言

课件部分是中科大郑诠老师上课的课件,在视频的简介有(下附)。笔记为自用总结整理,可能不是太详细。
课件https://pan.baidu.com/s/1EElOrkkY4WQqgeKHuGm-bg 密码:1958
这是个链接
大纲
在这里插入图片描述

【一】应用层协议原理

几种可能都应用架构:
1)C/S 2)P2P 3)混合体:C/S和对等体系结构

1、C/S

特点:P56
1)客户相互之间不直接通信。
2)具有固定的、周知的地址
在这里插入图片描述

2、P2P

P2P对位于数据中心的专用服务器有最小(或没有)的依赖。应用程序在间断连接的主机对之间使用直接通信,这些主机对被称为对等方。P2P体系结构最引人入胜的特点之一是他们的自扩展性。P57
在这里插入图片描述

3、混合体

客户和服务器定义:P57
在这里插入图片描述

4、进程通信

为了表示接收进程,需要定义两种信息:
1)主机的地址
2)在目的主机中指定接收进程的标识符

在因特网中,用IP地址标识主机;用目的端口号标识目的。
在这里插入图片描述
大体能够从四个方面对应用程序服务进行分类:P59
1)可靠数据传输:运输层协议能够潜在地向应用程序提供的一个重要服务提供进程——进程的可靠数据传输
2)吞吐量:具有吞吐量要求的程序被称为带宽敏感度应用。而弹性应用可以根据当时可用的宽带或多或少地利用可供使用的吞吐量
3)定时:由运输层协议提供
4)安全性:由运输层协议提供
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、因特网提供的运输服务

无论TCP还是UDP都没有提供任何加密机制

TCP

1)面向连接的服务
2)可靠的数据传送服务:无差错、顺序交付、没有字节的丢失和冗余
在这里插入图片描述
在这里插入图片描述

UDP

UDP并不保证该报文到达接受的进程(即接受进程的报文可能是乱序到达的)。
在这里插入图片描述
在这里插入图片描述

TCP和UDP对比

在这里插入图片描述

6、套接字和应用进程

在这里插入图片描述
在这里插入图片描述

【二】HTTP

1、HTTP概述:

在这里插入图片描述
在这里插入图片描述
http协议实际上是一个无状态的协议(即服务器不维护客户端状态)
【服务器向客户发送被请求的文件,而不存储任何关于该用户的状态信息】
好处:简单,同样的服务器资源的情况下,可以支持更多的客户端状态
cookie不会长期有效,不会在服务器存储。(cookie由后端校验,与当前时间戳约定过期时间,每一个用户的cookie都是有价值的)
在这里插入图片描述
2、非持续连接与持续连接:
HTTP在默认情况下使用(带流水线的)持续连接,但是也可以作为非持续连接使用。
1)非持续连接:每个TCP连接在服务器发送一个对象后关闭,即连接并不为其他的对象而持续下来。
【在http的响应报文当中,一个响应报文至多一个对象,不会有多个对象封装在一个http响应报文当中。而且,事实上,用户能够配置现代浏览器来控制连接的并行度。P66】
缺点:P67
3、状态码及其相应的短语 P69
在这里插入图片描述
·HTTP请求报文与相应报文格式及说明:P68

2、HTTP请求报文:

ASCII可读(ASCII可打印)
格式:
命令行/请求行
若干首部行(格式): 首部名:首部值
host →主机名
user-agent→用户代理的程序,指浏览器的第几个版本
connection→http1.1版本默认连接是不关的,但是可以人为让其关闭,当请求对象回来之后,连接关闭。当对象传完之后服务器不再维护该连接。
(回车换行,回车符是一个特殊的ASCII字符)
回车之后包括了可能的一些实体,请求报文通常没有实体(即GET请求没有实体行),即回车之后为空。POST命令常需要向服务器提交一些表单信息,该信息就在实体部分。
【绝大部分的HTTP请求报文使用GET方法,当用户提交表单时,HTTP客户常常使用POST方法】
在这里插入图片描述
【HTML表单常使用 GET方法,并在(表单字段)所请求的URL中包括输入的数据】

GET/POST/HEAD →命令字 +/主机域名(主机名)(当与目标主机建立连接后,主机名可以忽略)+协议和版本号
【每个URL地址由两部分组成:存放对象的服务器主机名+对象的路径名】
在这里插入图片描述

3、HTTP响应报文:

状态行 协议、版本号、状态码、状态码的响应
首部行 若干
【这些首部行可以被浏览器、web服务器和web缓存服务器插入。影响首部行的因素P70上部】
concent-length后的数字是HTTP响应报文的字节长度
data:并不是指对象创建或者最后修改的时间 P69
http是运行在tcp之上的,tcp向上提供的是一个字节流的服务,不维护上边报文交下来的边界,应用程序要自己去识别哪里是报文头,哪里是应用报文的结束。
所以http通过报文头(即首部行中的concent-length)告诉对方的应用实体需要读取多少字节的应用层报文
(即,TCP不管http报文的内容,所以让应用层http自己区分这些字节流的结构)
【1、TCP为HTTP提供可靠数据传输服务 2、分层体系结构最大的优点:P65】
(回车)
实体
在这里插入图片描述

4、其他说明

HEAD通常是搜索引擎用的,HEAD包括网页的一些描述信息,搜索引擎拿到HEAD之后建索引(就是客户端仍然向服务器请求,但是请求的是html文件的头部,头部通常包含一些源信息)且HEAD不返回请求对象。
Post方式:表单信息包含在实体主体中,被提交到服务器
GET方式:输入通过请求航的URL字段(即通过在URL之后注入参数的形式,向服务器提交相关信息)
参数名和参数值之间用=连接,多个参数值之间用&连接,GET/POST是HEAD和BODY都要
PUT:常与web发行工具联合使用,允许用户上传对象到指定的web服务器上指定的路径(目录)。同时也被需要向web服务器上传对象的应用程序使用。
DELETE:允许用户或者应用程序删除web服务器上的对象。

5、cookie:允许站点对用户进行跟踪

【web站点产生一个唯一识别码,并以此作为索引在它的后端数据库中产生一个表项】
条件GET:
用来允许缓存器证实它的对象是最新的(是HTTP的一种机制);状态码304
在这里插入图片描述

6、Web缓存服务器(也叫代理服务器)

1、
1)web直接连接origin服务器
2)通过web代理(当proxy中差找不到web服务器所需文件时,向origin发送请求,并在proxy的文件系统当中进行缓存)
client和proxy是正向代理,可以将两者看做一体,由proxy请求server
在这里插入图片描述
2、为什么要使用web缓存(课件)P72
降低服务器的压力,减少服务器的载荷
响应时间(往返时间RTT):是指响应发出到响应回来的时间 P66
【浏览器与web服务器之间建立TCP连接涉及“三次握手”过程】
排队延迟越接近于1,排队延迟无限大
1)本地访问
2)远程访问
在这里插入图片描述
3、响应时间、改进时间响应特性P73
1)增强接入链路的速率
2)不升级链路宽带而是在机构网络中安装一个Web缓存器
在这里插入图片描述

7、小结:

1、URL:统一资源定位符,用于表示网页的位置。
是专为标识Internet网上资源位置而设置的一种编址方式,平时所说的网页地址指的就是URL
URL:内容标识符+位置(天勤应用层第18t)
2、HTTP规定了WWW服务器与WWW浏览器之间信息传递的规范。
www不是一种协议,而是应用层提供的一种最为重要和普及的服务。

【二】FTP

无状态服务器:不需要维护服务器和客户端之间的状态

1、FTP:文件传输协议

在这里插入图片描述
ftp:FTP用户接口、FTP客户端、本地文件系统
作用:可以通过FTP 进行upload(到服务器)和download(到本地文件系统)
服务器守护的知名端口:port 21 ,当连接建立完成后(tcp控制连接),可以首先通过FTP进行用户认证的工作(身份认证),当用户认证工作完成后,客户端可以通过该TCP连接向服务器发送指令(list,up&down到响应的目录下)
完成连接之后,客户端可以向服务端发出一些命令,(当客户端可以向服务端发出下载命令时,服务器收到指令之后,服务器主动与客户端的port 20建立数据连接←这个连接是服务器主动建立起来的)
即,原port 21用来传输请求命令和命令响应,新建立的port 21用来进行数据传输:port 21 控制连接/port 20端口数据传输;就是说控制连接和数据传输是在两条tcp上进行的
【FTP的数据端口号=FTP控制端口号-1】
把控制命令的发送称为带外的(控制命令的发送是在控制连接上单独进行的)
带内的传数据,带外的传指令
(http的在一个连接上传输,初始时是一个无状态的协议,可以通过cookie来变成一个有状态的协议,服务器不维护客户端状态)
而FTP是个有状态协议,状态码也是以ASCII的形式
在这里插入图片描述
2、FTP提供交互式访问,FTP的用户名和口令全部都是明文传输的。
即,允许客户指明文件的类型与格式、并允许文件具有存取权限。
谢书P269 : 文件共享协议、联机访问、透明存取(透明存取的优点)
属于文件共享协议:NFS(目前主要应用于TCP/IP网络上)

2、小结:

1、
FTP只提供文件传送的一些基本的服务,使用TCP可靠的运输服务。主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP服务器进程:一个主进程(负责接受新的请求)+若干个从属进程(负责处理单个请求)
匿名FTP访问通常使用anonymous作为用户名
2、
一个完整的FTP工作需要经过:连接建立【又分为控制连接建立(是FTP客户端与FTP服务器连接建立的第一个阶段,主要用于传输FTP的各种明亮)和数据连接建立】、数据传输、释放连接 三个阶段
3、FTP本身是不具备差错控制能力的,FTP使用TCP的可靠传输来保证数据的正确性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值