第二章 网络应用(应用层)
第二章 网络应用(应用层)
1.计算机网络应用体系结构
三种类型
1.客户/服务器(c/s)结构
最主要的特征是通信只在客户与服务器之间进行,客户与客户之间不进行通信。
2.P2P(Peer to Peer)结构
每个对等端都同时具备C/S应用的客户与服务器的特征,是一个服务器与客户的结合体,对等端之间直接通信。
3.混合结构
既有中心服务器的存在,又有对等端(客户)间的直接通信。
2.网络应用通信基本原理
一端向另一端发送请求,来获取相应的服务
3.域名系统(DNS)
一,层次化域名空间
层次树状结构的命名方法:1.国家顶级域名nTLD;2.通用顶级域名gTLD;3.基础结构域名
DNS传输层使用的是UTP协议
二、域名服务器
-
域名解析
将域名映射为IP地址的过程。
-
域名服务器
为了实现域名解析,需要建立分布式数据库,存储网络中域名与IP地址的映射关系数据,这些数据库存储在
域名服务器上,域名服务器根据用户的请求提供域名解析服务。 -
域名服务器的分类
根域名服务器
顶级域名服务器
权威域名服务器
本地域名服务器
三、域名解析过程
-
递归查询
代替查询主机或其他域名服务器,进行进一步的域名查询,并将最终解析结果
发送给查询主机或服务器。 -
迭代查询
只是将下一步要查询的服务器告知查询主机或服务器。
4.万维网应用
万维网是我们现在使用非常广泛的一种网络应用
1.万维网应用体系结构
万维网应用体系结构包括三块:web服务器,浏览器,超文本传输协议(HTTP)
web服务器:网页的内容,超文本(html语言编写,设计的)
浏览器:客户机上的浏览器
超文本传输协议(HTTP):浏览器如何获取网页的内容呢?通过超文本传输协议
首先由客户机向服务器发送一个TCP链接(运输层,保证传输的可靠性)连接。
当建立连接之后 接下来,在应用层的基础上使用http协议
首先由客户机上的浏览器根据你要访问的网址 来发出http请求的报文,报文里面包含几部分
其中有一部分我们叫做url,统一资源定位符。实际上就是我们通常所说的网址。
所以这个时候我们网页的超链接就是包括我们所说的url网址,当我们点击超链接的时候,然后发送到
服务器。当然请求如何到服务器呢,我们http报文里面包括服务器的域名
服务器根据这个url来找到对应的网页资源。那么这个网页资源使用html语言编写的。那么这个网页资源
会作为http报文的响应信息呢再返回给我们浏览器
浏览器收到这个html编写的报文以后 ,再进行解释解读, 然后以特定的格式显示在我们的浏览器当中

2.HTTP(超文本传输协议)
HTTP概念:超文本传输协议,定义浏览器如何向Web服务器发送请求以及Web服务器如何向浏览器进行响应。
版本:HTTP/1.0和Http/1.1
http是无状态访问协议
Http连接:非持久连接,持久连接
非持久连接,持久连接

非流水方式持久连接,流水方式持久连接
总结:非/流水方式持久连接和 持久连接,并行连接
HTTP报文:
请求报文----从客户向服务器发送请求报文。
响应报文----从服务器到客户的回答。
HTTP请求报文
http典型的请求方法有GET、HEAD、POST、OPTION、PUT等。
1)GET:请求读取由URL所标识的信息
2)HEAD:请求读取由URL所标识的信息的首部,无须在响应报文中包含对象
3)POST:给服务器添加信息(例如注释)
4)OPTION:请求一些选项的信息
5)PUT:在指明的URL下存储一个文档

HTTP响应报文
HTTP状态码分类:
状态码 | 作用 | 描述 |
---|---|---|
1xx | 显示信息 | 通告信息,可能还需要进一步交互 |
2xx | 成功 | 成功完成客户请求的操作,并进行响应 |
3xx | 重定向 | 表示资源已移走,需要向新URL发送请求 |
4xx | 客户端错误 | 由于客户端请求错误,无法成功响应 |
5xx | 服务器端错误 | 由于服务器端请求错误,无法成功响应 |

3.Cookie
Cookie中文名称称为小型文本文件,指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。
弥补了Http协议无状态性的不足,有利于进行用户跟踪并提供针对性的服务,但也也带来一些安全问题。
cookie工作原理:

5.internet电子邮箱
一、电子邮件系统结构
二、SMTP(简单邮件传输协议)
SMTP是Internet电子邮件中核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。
SMTP使用传输层TCP实现可靠数据传输,端口号25.
SMTP通过三个阶段的应用层交互完成邮件的传输,分别是握手阶段、邮件传输阶段和关闭阶段。
SMTP的基本交互方式是SMTP客户端发送命令,命令后面可能携带参数,SMTP服务器对命令进行应答。
三、电子邮件格式与MIME
四、邮件读取协议(POP3 邮局协议)
POP3邮局协议
6.FTP(文件传送协议)
文件传送协议:在互联网的二个主机间实现文件互传的应用层协议。
7.P2P应用
8.Socket编程基础
什么是Socket:
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口 [1] 。
表示方法:套接字Socket=(IP地址:端口号)(210.37.145.1:23)
怎么调用传输层提供的网络服务呢。依赖于SOCKET接口
UDP和TCP:
UDP:无连接服务,不保证可靠性。成本低,效率高,速度快。
TCP:安全,可靠的面向连接的服务。
TCP是面向连接的服务。是指通信双方在发送数据之前要先建立连接,要进行资源分配 要进行参数的协商/目的是保证在数据传输过程当中所有的数据都能安全可靠的到达,不会有数据的损坏丢失这种情况发生。