一、应用层协议原理
1.应用层体系结构
(1)客户-服务器体系结构:有一个总是打开的主机称为服务器,它服务来自许多其他主机的请求
(2)P2P(对等)体系结构:应用程序在间断的主机对之间直接通信
2.进程通信
在操作系统中进行通信的是进程而不是程序,在两个不同端系统上的进程,通过跨计算机网络交换报文
(1)客户和服务器进程:对每对通信进程,我们将这两个中一个标识为客户一个标识为服务器
(2)进程与计算机网络之间的接口:进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文,应用开发者可以控制套接字在应用层的一切,但对套接字的运输层几乎没有控制权,权利仅限于选择运输层协议和设置几个参数
(3)进程寻址:需要定义两种信息,主机的地址(IP)和主机中接收进程的表示符(端口号)
3.可供应用程序使用的运输服务
(1)可靠数据传输
(2)吞吐量
(3)定时
(4)安全性
4.因特网提供的运输服务
(1)TCP
(2)UDP
5.应用层协议
应用层协议定义了运行在不同端系统上的应用程序如何相互传递报文
6.五个重要的应用
web,文件传输,电子邮件,目录服务,p2p
二、Web和HTTP
1.HTTP概括
Web的应用层协议是超文本传输协议(HTTP),它是Web的核心,HTTP由两个程序实现,一个客户程序和一个服务器程序,它们通过交换HTTP报文进行会话
Web页面由对象组成,一个对象只是一个文件,诸如HTML文件,JPEG文件等
URL由存放对象的服务器主机名和对象的路径名组成
HTTP使用TCP作为它的支撑运输协议,HTTP不保留关于用户的任何信息,是一个无状态协议
2.非持续连接和持续连接
非持续:每个请求经过一个单独的TCP连接
持续:每个请求可以经过同一个TCP连接
HTTP默认持续连接
3.HTTP报文格式
(1)请求报文
报文分成三个部分,请求行、请求头、请求体
(2)响应报文
分为三个部分:响应行、响应头,响应体
常见状态码:
200 请求成功
301 请求的对象被永久转移了,新的URL定义在响应报文的location
400 该请求不能被服务器理解
404 请求文档不在服务器上
505 服务器不支持报文使用的HTTP版本
4.用户和服务器的交互cookie
把用户身份和内容联系起来,可以对用户进行跟踪
四个组件:在HTTP响应报文一个cookie首部行,在HTTP请求报文一个cookie首部行,在用户端系统保留一个cookie文件,由浏览器进行管理,位于web站点的一个数据库
5.Web缓存和条件GET方法
Web缓存用来存放副本,加快速度,条件get用来更新web缓存
三、因特网目录服务DNS
实现主机名到主机IP的映射转换
DNS是一个由分层的DNS服务器实现的分布式数据库,一个使得主机能够查询分布式数据库的应用层协议 运行在UDP之上,使用53号端口
步骤:同一台主机上运行着DNS的客户端,浏览器从URL中抽出主机名发送给DNS的客户端,DNS客户向DNS服务器发送一个包含主机名的请求,DNS客户收到一份回答报文,包括该主机的IP地址,浏览器接收IP地址,向位于该IP地址80端口的HTTP服务器进程发起一个TCP请求
1.分布式、层次数据库
(1)根DNS服务器
(2)顶级域DNS服务器
(3)权威DNS服务器
(4)本地DNS服务器
(5)两种查询方法:递归和迭代
2.DNS缓存
当某DNS服务器接收到一个DNS回答时,它能将该回答中的信息缓存在本地存储器中
四、套接字编程
1.UDP
2.TCP
会在后面的博客单独写的