【计算机网络】应用层详解


协议就是一种约定。 自定制协议(应用层协议):被程序员定义出来的协议。

1、域名系统DNS

1.1 域名系统概述

域名系统DNS:是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址

  • 许多应用层软件经常使用域名系统DNS,但计算机的用户只是间接而不是直接使用DNS
  • 互联网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS
  • DNS使大多数名字都在本地进行解析,仅少量解析需要互联网上通信

域名的解析过程:当需要把主机名解析成IP地址时,应用进程调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器,本地域名服务器查找域名后,把对应的IP地址放在回答报文中返回,应用进程获得目的主机的IP地址后即可进行通信
 

1.2 域名结构

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

标号的规定:域名中的标号由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写;级别低的域名写在左边,级别高的写在右边;由多个标号组成的完整域名总共不超过255个字符
在这里插入图片描述

  • 顶级域名的分类:
  • 国家顶级域名:如cn、us
  • 通用顶级域名:如com、net、org、edu
  • 基础结构域名:只有arpa,用于反向域名解析,又称为反向域名
  • 二级域名:
  • 类别域名:ac、com、edu、gov
  • 行政区域名:bj、js

 

1.3 域名服务器

DNS服务器采用分层似的结构:最上层为根域名服务器;第二层为顶级域名服务器,第三层为authoritative域名服务器;

还有一个重要的本地域名服务器,当本地主机要访问域名服务器时,可以先访问本地的域名服务器,然后由本地域名服务器作为代理来访问其它的分层结构的域名服务器;

分级的域名服务器示意图:
在这里插入图片描述
域名服务器分类:

  • 根域名服务器:是层次最高的域名服务器。所有根域名服务器都知道所有顶级域名服务器的域名和IP地址。本地域名服务器只要无法解析,就求助于根域名服务器。
  • 顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。
  • 权限域名服务器:负责一个区的域名服务器。当权限域名服务器还不能给出回答时,就会告诉发出查询请求的DNS客户,下一步应找哪一个权限域名服务器。
  • 本地域名服务器:并不属于域名服务器层次结构,但很重要。当主机发出DNS查询请求时,这个查询请求报文发给本地域名服务器。

 

提高域名服务器可靠性: DNS域名服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其余是辅助域名服务器。当主域名服务器出现故障时,辅助域名服务器就可以保证DNS的查询工作不会中断。
 
域名的解析过程:主机向本地域名服务器查询

1)采用递归查询:如果本地域名服务器不知道查询域名的IP,则本地域名服务器以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。

2)采用迭代查询:当根域名服务器收到本地域名服务器发出的查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应向哪个域名服务器查询,然后让本地域名服务器进行后续查询。根域名服务器通常把自己知道的顶级域名服务器的IP告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。

 

2、HTTP协议

即超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

HTTP协议在传输层使用的协议是TCP协议。
&bsp;

2.1 HTTP工作原理

HTTP协议采用了请求/响应模型。

  • 客户端向服务器发送一个请求报文:包含请求的方法、URL、协议版本、请求头部和请求数据。
  • 服务器以一个状态行作为响应:包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

以下是 HTTP 请求/响应的步骤

1)客户端连接到Web服务器:一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。

2)发送HTTP请求:通过TCP套接字,客户端向Web服务器发送一个文本的请求报文。(一个请求报文由请求行、请求头部、空行和请求数据4部分组成。)

3)服务器接受请求并返回HTTP响应:Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。(一个响应由状态行、响应头部、空行和响应数据4部分组成。)

4)释放连接TCP连接:若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

5)客户端浏览器解析HTML内容:客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程

  1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
  2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
  3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作TCP 三次握手的第三个报文的数据发送给服务器;
  4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
  5. 释放 TCP连接;
  6. 浏览器将该 html 文本并显示内容;

 

2.2 HTTP数据包格式

HTTP请求

  请求首行
    请求方法 资源路径 协议版本 \r\n
  请求体
    key:value \r\n
  空行\r\n
  正文
 
HTTP响应

  首行:
    版本号 状态码 状态码解释\r\n
  Header:
    key:value \r\n
  空行\r\n
  正文

 

2.3 请求方法

方法解释支持的版本
GET获取资源1.0、1.1
POST传输实体主体1.0、1.1
PUT传输文件1.0、1.1
HEAD后去报文首部1.0、1.1
DELETE删除文件1.0、1.1
OPTIONS询问支持的方法1.1
TRACE追踪路径1.1
CONNECT要求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
UNLINE断开连接关系1.0

GET与POST请求的区别

  1. GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连;POST方法是把提交的数据放在HTTP包的正文中。

  2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制。

  3. Post方法比Get方法更加私密,想要安全,需要用ssl加密。

  4. Get能被缓存,数据在URL对所有人可见;POST不能缓存,数据不可见。

2.4 HTTP的状态码

类别解释
1XXinformational(信息性状态码)接收的请求正在处理
2XXSuccess(成功状态码)请求正常处理完毕
3XXRedirection(重定向状态码)需要进行附加操作以完成请求
4XXClient Error(客户端错误状态码)服务器无法处理请求
5XXServer Error(服务端错误状态码)服务器处理请求出错

常见的状态码:200(OK)、404(Not Found)、403(Forbidden)、302(Redirect)、504(Bad Gateway)

 

2.5 请求体(Header)

  • Host:请求的主机名称
  • Connection:keep-alive(长连接)
  • User-Agent:浏览器的版本信息和操作者系统的信息
  • Content-Type:正文类型
  • Accept-Encoding:能够接收的编码格式
  • Accept-Language:能够接收的语言

 

2.6 网址URL

以http://user:passwd@www.baidu.com:80/news/index.html?id=250&page=1 为例:

  • http:协议方案名
  • user:passwd:用户名和密码
  • www.baidu.com:服务器
  • /dir/index.html:带层次的文件目录
  • ?id=250&page=1:查询

 

3、文件传输协议FTP

3.1 FTP概述

文件传输协议FTP:是互联网上使用最广泛的文件传送协议,提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。

3.2 FTP的基本工作原理

FTP的特点:只提供文件传送的基本服务,使用TCP可靠性运输服务,FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

FTP工作流程:FTP使用客户服务器方式,一个FTP服务器进程可同时为多个客户进程提供服务。

1)打开熟知端口(21),使客户进程能够连接

2)等待客户进程发出连接请求

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

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

 

3.3 简单文件传送协议TFTP

TFTP:是很小且易于实现的文件传送协议,使用客户服务器方式。其使用UDP数据报,因此,TFTP需要有自己的差错改正措施,TFTP只支持文件传输而不支持交互。

优点:TFTP可用于UDP环境;TFTP代码所占的内存小

TFTP的主要特点

1)每次传送的数据报文中有512字节的数据,但最后一次可不足512字节

2)数据报文按序编号,从1开始

3)支持ASCII码或二进制传送

4)可对文件进行读或写

5)使用很简单的首部

TFTP工作流程:TFTP客户进程发送一个请求报文给TFTP服务器进程,其端口号为69。TFTP服务器进程选择一个新的端口和TFTP客户进程通信。

TFTP传输长度:若文件长度恰好为512字节整倍数,则文件传送完毕后,还必须在发送一个只含首部而无数据的数据报,作为文件结束的标志;若不是整倍数,则最后一个不足512字节的报文,作为文件结束的标志。
 

3.3 简单邮件传输协议SMTP

用于邮件的协议;端口号为25;使用TCP协议。

它是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。smtp服务器是遵循smtp协议的发送邮件服务器,当接收时作为smtp服务端,当发送时做smtp客户端。SMTP是一个推协议,它不允许根据需要从远程服务器上“拉”来消息。如果客户使用邮件客户端收取邮件,需要使用POP3或IMAP协议,向邮件服务器拉取邮件数据,此时该服务器作为POP3或IMAP服务器。
在这里插入图片描述
 

4、动态主机配置协议DHCP

DHCP协议:负责给互联网上的计算机提供动态的IP地址。

需要配置的项目:
1)IP地址

2)子网掩码

3)默认路由器的IP地址

4)域名服务器的IP地址
 

4.1 DHCP工作流程

需要地址的客户机先在网上发广播包请求地址,DHCP服务器收到广播包后在自己的地址池里选一个地址(包括配套的子网掩码和网关),租给该客户机,该客户机再给DHCP服务器一个确认。

注意:DHCP服务器本身必须是静态地址!!!

地址池 与 地址租约
在IP地址的动态分配中,DHCP客户端想DHCP服务器发送IP地址请求。DHCP服务器会维护一个 IP地址池,DHCP从地址池从取出一个IP回应给DHCP客户端。在地址分配时,DHCP服务器也会指定回应给DHCP客户端的IP地址的租约期,该地址只有在该租约期内可用,不过DHCP客户端可用在租约期内请求延长租约(更新租约期)。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP 协议(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,是万维网数据传输的基础。它采用客户端-服务器模式,客户端发起请求,服务器返回响应。下面对 HTTP 协议进行详细解析。 HTTP 协议以简洁的请求-响应模型为基础。客户端发送请求报文给服务器,报文包含请求方法、URL、协议版本等信息。服务器收到请求后,根据请求内容进行相应处理,并返回响应报文给客户端。响应报文包含协议版本、状态码、响应头和响应体等信息。客户端接收到响应后,根据状态码判断请求是否成功,并解析响应内容。 HTTP 协议的特点主要包括:无状态、可靠性差、传输效率低。无状态指的是服务器不会保存任何客户端的状态信息,每次请求都是单独的。可靠性差是因为 HTTP 使用 TCP 进行数据传输,TCP 协议本身也有一定的不可靠性。传输效率低是由于 HTTP 建立连接的开销较大,并且每次请求都需要重新建立连接。 HTTP 协议的工作流程如下:客户端发送一条请求到服务器,服务器接收并解析请求,处理请求并生成响应,将响应发送给客户端,客户端接收并解析响应。 HTTP 协议的主要优点包括:易于使用、灵活性强、便于扩展。易于使用指的是 HTTP 的语法规则简单明了,易于理解和实现。灵活性强指的是可以通过设置请求头、传递参数等方式来定制请求。便于扩展指的是可以根据需要添加新的功能或特性。 总之,HTTP 协议作为互联网应用最常用的协议之一,它的设计简洁、易于使用,为用户提供了方便、快速的网络通信方式。同时,由于协议本身的一些限制,HTTP 协议的传输效率相对较低,因此在一些对效率要求较高的场景下,可能需要使用其他协议替代。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值