计算机网络——应用层


应用层协议的特点

  • 每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的。
  • 应用层的许多协议都是基于客户服务器方式。客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。客户服务器方式所描述的是进程之间服务和被服务的关系。客户是服务请求方,服务器是服务提供方。

一、域名系统 DNS

1. 域名系统概述

  • 域名系统是完成名字到IP地址的解析
  • 许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统。
  • 因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS。
  • 名字到 IP 地址的解析是由若干个域名服务器程序完成的。域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。

2. 因特网的域名结构

  • 因特网采用了层次树状结构命名方法
  • 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。
  • 域名的结构由标号序列组成,各标号之间用点隔开: … . 三级域名 . 二级域名 . 顶级域名
  • 各标号分别代表不同级别的域名。
  • 域名只是个逻辑概念,并不代表计算机所在的物理地点。
  • 变长的域名和使用有助记忆的字符串,是为了便于人来使用。而 IP 地址是定长的 32 位二进制数字则非常便于机器进行处理。
  • 域名中的“点”和点分十进制 IP 地址中的“点”并无一一对应的关系。点分十进制 IP 地址中一定是包含三个“点”,但每一个域名中“点”的数目则不一定正好是三个。
    在这里插入图片描述

3. 域名服务器

  • 一个服务器所负责管辖的(或有权限的)范围叫做 区(zone)。
  • 各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。
  • 每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
  • DNS 服务器的管辖范围不是以“域”为单位,而是以“区”为单位
    在这里插入图片描述
  • 域名服务器有以下四种类型:
    • 根域名服务器
    • 顶级域名服务器
    • 权限域名服务器
    • 本地域名服务器

4. 域名解析

二、文件传送协议

1. FTP 概述

  • 文件传送协议 FTP (File Transfer Protocol) 是因特网上使用得最广泛的文件传送协议。
  • FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
  • FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
  • RFC 959 很早就成为了因特网的正式标准。

2. FTP 的基本工作原理

  • 网络环境下复制文件的复杂性 以及遇到的问题
    • 计算机存储数据的格式不同。
    • 文件的目录结构和文件命名的规定不同。
    • 对于相同的文件存取功能,操作系统使用的命令不同。
    • 访问控制方法不同。
  • FTP 特点
    • 文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务
    • FTP 的主要功能减少或消除在不同操作系统下处理文件的不兼容性
    • FTP 使用客户服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。
    • FTP 的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

3. 简单文件传送协议 TFTP

  • TFTP 是一个很小且易于实现的文件传送协议
  • TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
  • TFTP 只支持文件传输不支持交互
  • TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

三、万维网 WWW

1. 万维网概述

  • 万维网 (World Wide Web , WWW)并非某种特殊的计算机网络。
  • 万维网是一个大规模的、联机式的信息储藏所。
  • 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
  • 这种访问方式称为“链接”。
  • 万维网必须解决的问题
    • 怎样标志分布在整个因特网上的万维网文档?
      使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。使每一个文档在整个因特网的范围内具有唯一的标识符 URL。
    • 用何协议实现万维网上各种超链的链接?
      在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
    • 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?
      超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。
    • 怎样使用户能够很方便地找到所需的信息?
      为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。

2. 统一资源定位符 URL

  • URL 的格式
    • 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。
    • URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
    • 只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。
    • URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。
    • 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。
    • URL 的一般形式是:
      在这里插入图片描述

3. 超文本传送协议 HTTP

  • HTTP 基本概念
    • HTTP 是应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
    • HTTP定义了浏览器(万维网客户进程)如何向万维网服务器请求万维网文档,以及服务器如何把文档传送给浏览器。
    • 从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
    • 事务(transaction-oriented)是指一系列的信息交换,这一系列的信息交换是一个不可分割的整体。即所有的信息要么都交换完成,要么一次交换都不进行
  • HTTP 的操作过程----万维网的工作过程
    在这里插入图片描述
  • 用户点击鼠标后所发生的事件
    • 浏览器分析超链指向页面的 URL。
    • 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
    • 域名系统 DNS 解析出清华大学服务器的 IP 地址。
    • 浏览器与服务器建立 TCP 连接
    • 浏览器发出取文件命令:GET /chn/yxsz/index.htm。
    • 服务器给出响应,把文件 index.htm 发给浏览器。
    • TCP 连接释放。
    • 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
  • 请求一个万维网文档所需的时间
    所需时间 = 文档传输时间 + 2 * 往返时间RTT;
    在这里插入图片描述
  • HTTP 主要特点
    • HTTP 是面向事务的客户服务器协议。
    • HTTP 1.0 协议是无状态的(stateless)。
    • HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
  • 代理服务器
    • 代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。
    • 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。
    • 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。
  • HTTP 报文结构
    两类报文:(1)请求报文——从客户向服务器发送请求报文。(2)响应报文——从服务器到客户的回答。
    • 请求报文
      • 报文由三个部分组成,即开始行(请求行)、首部行、实体主体。在请求报文中,开始行就是请求行。
        在这里插入图片描述
  • 响应报文
    • 报文由三个部分组成,即开始行(状态行)、首部行、实体主体
    • 响应报文的开始行是状态行。状态行包括三项内容,即 HTTP 的版本状态码,以及解释状态码的简单短语。(状态码都是三位数字)
      在这里插入图片描述

4. 万维网的文档

  • 超文本标记语言 HTML
    • 超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”。
    • HTML 定义了许多用于排版的命令(即标签)。
    • HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件。

5. 万维网的信息检索系统

  • 全文检索搜索和分类目录搜索
    • 在万维网中用来进行搜索的程序叫做搜索引擎。
    • 全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到因特网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询。
    • 用户在查询时只要输入关键词,就从已经建立的索引数据库上进行查询(并不是实时地在因特网上检索到的信息)。
    • 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。
    • 分类目录搜索也叫做分类网站搜索。
  • 垂直搜索引擎
    • 针对某一特定领域、特定人群或某一特定需求提供搜索服务。垂直搜索也是提供关键字来进行搜索的,但被放到了一个行业知识的上下文中,返回的结果更倾向于信息、消息、条目等。

四、HTTP 重点补充

1. HTTP 状态码

  • 状态码系列
    • 1XX:通知,1XX系列响应代码仅在与HTTP服务器沟通时使用。
    • 2XX:成功,2XX系列响应代码表明操作成功了。
    • 3XX:重定向,3XX系列响应代码表明:客户端需要做些额外工作才能得到所需要的资源。
    • 4XX:客户端错误,这些响应代码表明客户端出现错误。不是认证信息有问题,就是表示格式或HTTP库本身有问题。
    • 5XX:服务端错误,这些响应代码表明服务器端出现错误。
  • 常用状态码
    • 200(“OK”)——一切正常。实体主体中的文档(若存在的话)是某资源的表示。
    • 400(“Bad Request”)——客户端方面的问题。实体主题中的文档(若存在的话)是一个错误消息。希望客户端能够理解此错误消息,并改正问题。
    • 500(“Internal Server Error”)——服务期方面的问题。实体主体中的文档(如果存在的话)是一个错误消息。该错误消息通常无济于事,因为客户端无法修复服务器方面的问题。
    • 301(“Moved Permanently”)——当客户端触发的动作引起了资源URI的变化时发送此响应代码。另外,当客户端向一个资源的旧URI发送请求时,也发送此响应代码。
    • 404(“Not Found”) 和410(“Gone”)——当客户端所请求的URI不对应于任何资源时,发送此响应代码。404用于服务器端不知道客户端要请求哪个资源的情况;410用于服务器端知道客户端所请求的资源曾经存在,但现在已经不存在了的情况。
    • 409(“Conflict”)——当客户端试图执行一个”会导致一个或多个资源处于不一致状态“的操作时,发送此响应代码。

2. HTTP 缓存

  • http缓存指的是: 当客户端向服务器请求资源时,会先抵达浏览器缓存,如果浏览器有“要请求资源”的副本,就可以直接从浏览器缓存中提取而不是从原始服务器中提取这个资源。
  • 常见的http缓存只能缓存get请求响应的资源,对于其他类型的响应则无能为力,所以后续说的请求缓存都是指GET请求。
  • http缓存都是从第二次请求开始的。第一次请求资源时,服务器返回资源,并在respone header头中回传资源的缓存参数;第二次请求时,浏览器判断这些请求参数,命中强缓存就直接200,否则就把请求参数加到request header头中传给服务器,看是否命中协商缓存,命中则返回304,否则服务器会返回新的资源。
  • http缓存的分类
    • 根据是否需要重新向服务器发起请求来分类,可分为:强制缓存,协商缓存
    • 根据是否可以被单个或者多个用户使用来分类,可分为:私有缓存,共享缓存
    • 强制缓存如果生效,不需要再和服务器发生交互,而协商缓存不管是否生效,都需要与服务端发生交互。下面是强制缓存和协商缓存的一些对比:
      在这里插入图片描述

3. Cookie、Session

详细内容看这篇博客: 会话技术(Cookie 和 Session)

4. GET 和 POST

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

5. http1.0、http1.1、http2.0 区别

6. 断点续传实现

五、HTTPS 重点补充

1. 对称加密、非对称加密

  • HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。

2. RSA(非对称加密)

3. 数字签名

4. HTTPS 建立过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值