【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!
【计算机网络】学习笔记,第六篇:应用层(谢希仁版)
说明:
  • 文章主要针对科班上课做的简单笔记,以及后面针对一些面试涉及内容的详细讲解

  • 再三声明:考研的同学好好去背书,做题,重点研究一下侧重点,加油 !!!

  • 此文章归纳整理自:【计算机网络】(第七版)谢希仁 ,一切内容版权均归书籍作者所有,侵删

一 DNS 域名系统

(一) 概述

许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。

互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。

  • 名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器

互联网采用了层次树状结构的命名方法。
任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。

域名的结构由标号序列组成,各标号之间用点隔开:

… . 三级域名 . 二级域名 . 顶级域名
各标号分别代表不同级别的域名。

(二) 常见域名

(1) 国家顶级域名 nTLD

  • .cn 表示中国,

  • .us 表示美国,

  • .uk 表示英国,等等。

(2) 通用顶级域名 gTLD

最早的顶级域名是:

  • .com   (公司和企业)

  • .net   (网络服务机构

  • .org   (非赢利性组织)

  • .edu   (美国专用的教育机构)

  • .gov   (美国专用的政府部门)

  • .mil   (美国专用的军事部门)

  • .int   (国际组织)

新增的通用顶级域名:

  • .aero   (航空运输企业)

  • .biz   (公司和企业)

  • .cat   (加泰隆人的语言和文化团体)

  • .coop   (合作团体)

  • .info   (各种情况)

  • .jobs   (人力资源管理者)

  • .mobi   (移动产品与服务的用户和提供者)

  • .museum (博物馆)

  • .name   (个人)

  • .pro   (有证书的专业人员)

  • .travel   (旅游业)

(三) 互联网的域名空间

【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

(四) 域名解析过程

主机向本地域名服务器的查询一般都是采用递归查询。如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。

本地域名服务器向根域名服务器的查询通常是采用迭代查询。当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。

本地域名服务器采用迭代查询

【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

本地域名服务器采用递归查询(比较少用)

【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

二 FTP 协议

(一) 概述

文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。

FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。

FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

(二) 网络环境下复制文件的复杂性:

  • 计算机存储数据的格式不同

  • 文件的目录结构和文件命名的规定不同。

  • 对于相同的文件存取功能,操作系统使用的命令不同。

  • 访问控制方法不同。制出的文件系统多达数百种,且差别很大。

FTP 协议也因此被应用

(三) 特点

  • 文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。

  • FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

  • FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

(四) 工作步骤

  • 打开熟知端口(端口号为 21),使客户进程能够连接上。

  • 等待客户进程发出连接请求。

  • 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。

  • 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。

  • 当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口 (21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。

  • 接着,服务器进程用自己传送数据的熟知端口 (20) 与客户进程所提供的端口号码建立数据传送连接。

  • 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。

    使用两个不同端口号的好处

  • 使协议更加简单和更容易实现。

  • 在传输文件时还可以利用控制连接(例如,客户发送请求终止传输)。

(五)  简单文件传送协议 TFTP

  • TFTP (Trivial File Transfer Protocol) 是一个很小且易于实现的文件传送协议。

  • TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。

  • TFTP 只支持文件传输而不支持交互。

  • TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

简单了解

三 远程终端协议 TELNET

  • TELNET 是一个简单的远程终端协议,也是互联网的正式标准。

  • 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。

  • TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上。

现在由于 PC 的功能越来越强,用户已较少使用 TELNET 了。
TELNET 也使用客户服务器方式。在本地系统运行 TELNET 客户进程,而在远地主机则运行 TELNET 服务器进程。
和 FTP 的情况相似,服务器中的主进程等待新的请求,并产生从属进程来处理每一个连接。

四 HTTP协议

HTTP (HyperText Transfer Protocol) 超文本传输协议,它是一个简单的请求-响应协议 ,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应 ,所有的WWW文件都遵循这个标准,它是TCP/IP中的一个应用层协议

(一) 怎么理解 HTTP 协议呢?

当我们在浏览器地址栏上输入URL后,浏览器会通过DNS解析到对应IP上,浏览器而根据这个IP将IP地址与Web服务器进行通信,这个通信的协议就是HTTP协议,说白了,HTTP协议就是规定了客户端和服务器端之间通讯的一种规范和格式,只有两者都遵循这个协议,两者在接受和响应请求的时候才能达到一致

(二) HTTP请求

浏览器向服务器请求某个web资源,称浏览器向服务器发送了一个http请求(客户端 --> 服务器)

请求格式:

1、请求首行

2、请求头

3、空行

4、请求体(或称之为请求正文)

(1) 请求行

常见的请求方法有GET和POST

在浏览器地址栏中发送请求,以及点击超链接都是GET请求

提交表单既可以使用GET,也可以使用POST方式,推荐使用POST方式查询数据的时候推荐使用GET方式

GET:没有请求体,但空行是存在的,附带的参数有限制,数据容量不能超过1k

POST:存在请求体,可以在请求的实体内容中向服务器发送数据,传送的数据量是无限制的

(2) 请求头

  • Accept-Charset: ISO-8859-1 :客户端告诉服务器,所支持的字符集格式

  • Accept-Encoding: gzip,deflate,br :客户端告诉服务器,所支持的压缩格式

  • Accept-Language: en-us,zh-cn :客户端告诉服务器,它的语言环境

  • Connection: close/Keep-Alive :客户端告诉服务器,请求完后是断开链接或保持链接

  • Cookie :客户端告诉服务器,所带来的的cookie(后面讲)

  • Host:xxxxxx :客户端告诉服务器,想访问哪台主机

  • User-Agent :User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36:表示浏览器内核

  • Referer :xxxxx:客户端告诉服务器,客户机从哪个页面来的,防盗链,前发出请求的地址,例如在浏览器地址栏直接访问服务器,那么没有这个请求头。如果是在www.baidu.com页面上点击链接访问的服务器,那么这个头的值www.baidu.com

  • Content-Type:如果是POST请求,会有这个头,默认值为application/x-www-form-urlencoded,表示请求体内容使用url编码

(三 ) HTTP响应

一个HTTP响应代表服务器向客户端回送数据

响应格式:

1、响应首行

2、响应头

3、空行

4、响应体(或称之为响应正文)

(1) 状态行

格式:HTTP版本号 状态码 原因

状态行:HTTP/1.1 200 OK

状态码

响应首行的结构:协议及版本 状态码 状态码说明,例如:HTTP/1.1 200 OK

状态码 解释
200 请求成功
302 请求重定向
304 请求资源没有改变
404 请求资源补不存在,属性客户端错误
500 服务器内部错误

(2) 响应头

  • Content-Type:响应正文的MIME类型,例如image/jpeg表示响应正文为jpg图片,例如text/html;charset=utf-8表示响应正文为html,并且编码为utf-8编码。浏览器会通过这一信息来显示响应数据

  • Content-Length:响应正文的长度

  • Set-Cookie:服务器告诉客户端要保存Cookie

  • Date:响应时间,可能会有8小时的误差,因为中国的时区问题

通知客户端浏览器不要缓存页面的响应头:

  • Expires:-1

  • Cache-Control: no-cache

  • Pragma: no-cache

自动刷新响应头,浏览器会在3秒钟后自动重定向到传智主页

  • Refresh: 3;url=http://www.xxxx

状态码304

相关头信息

  • Last-Modified:响应头,表示当前资源的最后修改时间;

  • If-Modified-Since:请求头,表示缓存的资源最后修改时间;

状态码304:表示访问的资源没有改变

  1. 客户端首次访问服务器的静态资源index.html,服务器会把index.html响应给客户端,而且还会添加一个名为Last-Modified的响应头,它说明了当前index.html的最后修改时间

  2. 客户端收到响应后,会把index.html缓存在客户端上,而且还会把Last-Modified缓存起来。

  3. 客户端第二次请求index.html时,会添加名为If-Modified-Since的请求头,它的值是上次服务器响应头Last-Modified,服务器获取到客户端保存的最后修改时间,以及当前资源的最后修改时间进行比较,如果相同,说明index.html没有改动过,那么服务器不会发送index.html,而是响应状态码304,即通知客户端资源没有改变,你可以使用自己的缓存。

五 电子邮件协议SMTP、POP3、IMAP

  • 简单邮件发送协议:SMTP

  • 通用互联网邮件扩充 MIME

  • 邮件读取协议:POP3 和 IMAP

【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

  • 发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。

  • 而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议

六 动态主机配置协议 DHCP

为了将软件协议做成通用的和便于移植,协议软件的编写者把协议软件参数化。这就使得在很多台计算机上使用同一个经过编译的二进制代码成为可能

一台计算机和另一台计算机的区别,都可通过一些不同的参数来体现。

在软件协议运行之前,必须给每一个参数赋值。

在协议软件中给这些参数赋值的动作叫做协议配置。

互联网广泛使用的动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制。

并不是每个网络上都有 DHCP 服务器,这样会使 DHCP 服务器的数量太多。现在是每一个网络至少有一个 DHCP 中继代理,它配置了 DHCP 服务器的 IP 地址信息。

【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

七 简单网络管理协议 SNMP

网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能,服务质量等。网络管理常简称为网管。

【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

含义:

  • 网络管理协议简称为网管协议。

  • 需要注意的是,并不是网管协议本身来管理网络。网管协议是管理程序和代理程序之间进行通信的规则。

模式体现:

  • 简单网络管理协议SNMP (Simple Network Management Protocol) 中的管理程序和代理程序按客户–服务器方式工作。

  • 管理程序运行 SNMP 客户程序,向某个代理程序发出请求(或命令),代理程序运行 SNMP 服务器程序,返回响应(或执行某个动作)。

  • 在网管系统中,往往是一个(或少数几个)客户程序与很多的服务器程序进行交互。

基本功能:

  • SNMP 最重要的指导思想就是要尽可能简单

  • SNMP 的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。

八 结尾

邮箱:ideal_bwh@163.com

如果帮到你的话,那就来关注我吧!

如果您更喜欢微信文章的阅读方式,可以关注我的公众号

如果您更加喜欢PC端的阅读方式,可以访问我的个人博客

域名:www.ideal-20.cn

在这里的我们素不相识,却都在为了自己的梦而努力 ❤

一个坚持推送原创开发技术文章的公众号:理想二旬不止

【计算机网络】学习笔记,第六篇:应用层(谢希仁版)

原文始发于微信公众号(理想二旬不止):【计算机网络】学习笔记,第六篇:应用层(谢希仁版)