文档介绍:刘颖@
TCP/IP协议分析
第八章应用层:HTTP和FTP
HTTP概述
P(Hypertext Transfer Protocol,超文本传输协议)是
第八章应用层:HTTP和FTP
HTTP概述
第八章应用层:HTTP和FTP
HTTP概述
HTTP的特点
H T T P使用TCP通信,缺省端口是80。
HTTP是一种无状态协议。
请求/响应命令都是文本形式。
HTTP协议(1):协议数据
HTTP概述
HTTP协议(2):协议逻辑
浏览器 WWW服务器
SYN=1
建立TCP连接 SYN=1,ACK=1
ACK=1
请求网页
传送网页
FIN=1
ACK=1
关闭TCP连接 FIN=1
ACK=1
HTTP概述
HTTP协议(3-1):非持久连接工作方式
浏览器 WWW服务器
建立TCP连接
请求页面
传送WWW页面
关闭TCP连接
建立(新)TCP连接
请求页面中的对象X
传送页面中的对象X
关闭TCP连接
事务#1
事务#2
每个事务一个连接
服务器端无状态:
不关联事务上下文
HTTP概述
HTTP协议(3-2):持久连接工作方式
浏览器 WWW服务器
建立TCP连接
请求页面
传送WWW页面
请求页面中的对象X1
传送页面中的对象X1
请求页面中的对象Xn
传送页面中的对象Xn
关闭TCP连接
事务#0
事务#1
事务#n
多个事务复用一个连接
服务器端无状态:不关联事务上下文
HTTP协议(3-3):成批传送(持久连接工作方式)
浏览器 WWW服务器
建立TCP连接
请求页面
传送WWW页面
请求页面中的对象X
传送页面中的对象X (成批数据传送)
关闭TCP连接
事务#1
事务#2
成批传送
多个事务复用一个连接
服务器端无状态
HTTP协议(4):浏览器如何建立一个完整的网页(持久连接方式)
connect(fd,..); /*连接HTTP服务器*/
write(fd,…);/*向服务器发送GET命令请求页面*/
read(fd,buffer,n); /*从服务器读取页面: 接收到达的HTML数据*/
在显示缓冲区中构造页面的布局;
for(HTML文本中的每个URL){
为URL指示的对象分配缓冲区域;
write(fd,…);/*向服务器发送GET命令请求URL标记的对象(图像、applet等)*/
read(fd,….); /*从服务器读取对象: 接收到达的HTML编码数据*/
解码对象,或为Applet/ActiveX对象准备运行环境;
}
在浏览器窗口显示完整的页面;
close(fd);