第一节 计算机网络应用体系结构
说了三种类型的体系结构:C/S P2P 混合
一、客户/服务器(C/S)结构网络应用
用户请求服务器
二、纯 P2P 结构网络应用
用户请求用户;无法得知用户在不在在哪
三、混合网络结构应用
两种混合,用户在服务器上注册,通过服务器找到其他用户
第二节 网络应用通信基本原理
通过两种方式来进行通信:TCP 和 UDP
TCP:面向连接、可靠的数据传送服务;通过握手确认接收者,然后顺序的发送数据
UDP:无连接、不可靠的数据传送服务;数据传送钱不经过握手确认,且不保证报文的百分百顺序送达
第三节 域名系统(DNS)
我们现在实用的软件来访问的网络,这些网络称为用户代理(浏览器就是代理软件)
用户通过浏览器(代理软件)来访问资源的时候都需要走 DNS (负责将对应的域名进行映射找到对应的 IP 地址传输获取数据)
一、层次化域名空间
域名的层次分明与代表的内容
二、域名服务器
高级的域名会管理留有所有低级服务器的域名,如果自己找不到了,就会去高级中查找。
三、域名解析过程
递归查询和迭代查询
递归查询:从父节点依次往下查询结果
迭代查询:一次一次的访问对应的结果来查询节点存在的下一个节点信息,知道查询到为止
第四节 万维网应用
一、万维网应用结构
万维网应用就是 WEB 应用
WEB 页面也是对象组成的,包含一个基本的 HTML 页面,基本页面中引用其他对象(多个接口数据)。
URL 地址两部分组成:服务器主机名(IP 地址)和对象的路径名(路由到哪一个 HTML 页面上)。
二、HTTP
1. HTTP 概述
HTTP是WEB应用的应用层协议
HTTP/0.9
只是为了获取 HTML 对象,只支持 GET 方法,很快就被代替了
HTTP/1.0
增加了多媒体,增强了交互能力,但是还不满足持久 keep-alive 连接、虚拟主机支持和代理连接
HTTP/1.1
比1.1支持更多的请求办法、拓展首部、增加了响应状态码、改进对缓存的支持
HTTP/2.0
主要是关注性能的优化以及强大的服务逻辑远程执行框架
2. HTTP 连接
-
非持久连接
每次请求都会建立一次TCP连接,当前请求完成之后就会断开这个连接,下次同样的请求会再次建立TCP连接之后再进行数据的传输。(获取基本的HTML对象前建立一次TCP连接,建立好之后再进行请求和接收响应,完成之后断开连接,发现基本对象里面还需要引用其他额外对象针对每一对象都去建立连接进行请求断开操作)
-
并行连接
获取基本的HTML对象之后,先查看里面还有那些引用的其他对象,然后并行的将这几个对象一起请求。
-
持久连接
只建立一次TCP连接,不断开链接。
有对应的约束,当当前请求是最后一个请求时,需要在最后一条请求报文中包含 connection:close 首部行,来断开连接。
服务端收到该首部行之后将不会允许客户端在这条连接上创建更多的请求。
1)非流水方式持久连接:非管道方式持久连接
建立链接之后,一个一个的请求对应的对象,省去了后续每个对象请求前都需要建立TCP链接的过程。
2)流水方式持久连接:管道方式持久连接
建立好链接之后依次发送需要对象的请求,然后接收数据。相当于伪并行。
3. HTTP 报文
HTTP 报文由两部分组成:起始行、首部行、空白行(只有CRLF)、实体主体,每行由 CRLF