2.1 应用层协议原理
客户端服务器结构体系
应用层协议 定义了运行在不同的端系统上的应用程序进程如何相互传递报文
交换报文类型、报文类型语法、字段含义、进程何时、如何发送报文及对报文响应规则
2.2 web应用和http协议
web的应用层协议是超文本传输协议,它是web的核心。
web页面由对象组成,对象简单来说就是文件。
web浏览器实现了http的客户机端
web服务器用于存储web对象,每个对象有url寻址
http定义了web客户端如何向服务端请求web页面,以及服务器如何将web页面传送给客户端
http使用tcp作为它的支撑运输层传输协议
http是无状态协议
web服务器总是打开的,并且有固定的ip地址
非持久连接和持久连接:确定每个请求响应对经过一个单独的Tcp连接发送还是所有的请求及响应经相同的tcp连接发送,前一种非持久连接后一种持久连接
http 报文格式
1 http请求报文
GET /somedir/page.html HTTP/1.1 (请求行)
Host :www.somescholl.edu 后面都为首部行
Connection: close (使用非持久连接)
User-agent: Mozilla/4.0 (客户端类型)
Accept-language:fr
2 http响应报文
HTTP/1.1 200 OK 状态行
Connection :close 后面首部行
Date:Thu,03 Jul 2003 GMT
server:Apache/1.3.0(unix)
Last-Modified: sun,6 May 2007 GMT
Content-Length :6821
Content-Type :text/html
(data data ...) 实体主体
一些状态码:200 OK 请求成功,信息包含在返回的响应报文中
301 Moved permanently 对象已被永久转移
400 Bad Request 通用差错代码 ,请求不被服务器理解
404 Not Found 被请求文档不在服务器上
505 HTTp Version not supported
用户与服务器交互: cookie
cookie四个组成部分 : 1 http响应报文中有一个cookie首部行
2 http请求报文中有一个cookie首部行
3 用户端系统保留有一个cookie文件,用户浏览器管理
4 web站点有一个后端数据库
suan通过浏览器访问amazon,请求报文到达amazon后,该web站点将产生一个唯一标识码,并以此作为索引在它的后端数据库中产生一个表项。接下来amazon
服务器用一个包含set-cookie:首部行http响应报文对susan 的浏览器进行响应,susan的浏览器
受到http响应报文时,它会看到该set-cookie:首部
web缓存
web缓存器也叫代理服务器
条件get
文件传输协议FTP
文本传输协议。运行于TCP之上,FTP 使用两个并行的TCP连接来传输文件
一个 控制连接 21一个数据连接20 ,FTP控制信息是带外传送的。
FTP命令和回答
USER向服务器传送用户标识
PASS传送用户口令
LIST 请求服务器当前目录所有文件列表
RETR从当前目录检索文件
STOR当前目录存放文件
状态码 331 username ok
DNS 因特网目录服务
DNS 1 一个由分层的DNS服务器实现的分布式数据库
2 一个允许主机查询分布式数据库的应用层协议
DNS协议运行在UDP之上
请求URL过程
1 同一台主机运行着 DNS应用的客户端机
2 该浏览器提取主机名,传给dns客户机端
3 dns客户机向dns服务器发送一个包含主机名的请求
4 该dns客户机接受一份回答报文,对应该主机名的ip地址
5 浏览器接收到dns的ip地址,就可以由该IP地址定位的http服务器发送一个TCP连接