【计算机网络复习】第二章 应用层 2
WWW概述
万维网,WWW, World Wide Web
不是一个网络,而是基于因特网的信息服务系统
以C/S模式工作
n 客户程序向服务器程序提出请求
n 服务器程序向客户程序返回客户需要的万维网文档,即页面
WWW应用的客户端:浏览器
WWW应用的用户接口
功能
n 向Web服务器发送请求消息
n 接收Web服务器的应答消息
n 解释网页文档的源代码,将网页呈现给用户
n 通用的客户端,支持Email、文件传输、BBS、电子商务等应用
不同的浏览器对于同一网页文件的呈现结果不同
WWW应用的服务器端:Web服务器
保存Web网页文档
接收客户端的请求消息
返回响应消息:状态信息和网页数据
WWW应用的编址:URL
统一资源定位符,唯一标识一个资源,对资源进行定位和访问
协议名 :// 主机: 端口号 /文件路径及文件名
例如:http://www.abc.com:8080/example/example.html
缺省值:
n 协议名:http
n 端口号:80
n 文件名:index.html
例如:www.abc.com 等同于http://www.abc.com:80/index.html
网页类型
o静态网页(Static web page)
n 以文件形式保存
n 不同的用户、不同时间访问,返回结果均一样
o动态网页(Dynamic web page)
n 收到浏览器请求后,服务器端动态生成网页
n 示例:CGI脚本
o活跃网页(Active web page)
n 收到服务器响应后,客户端动态生成网页
n 示例:Java Applet
HTTP概述
o WWW的应用层协议
o 采用C/S模型
n 客户端浏览器: 发出HTTP请求,接收HTTP响应,向用户呈现网页
n Web服务器: 接收HTTP请求,返回HTTP响应(包含请求的网页数据)
o 传输层采用TCP
o 无状态(Stateless)协议
n服务器端不保存以前的访问记录,对于每个请求都是单独处理
HTTP 的操作过程
(1) 浏览器分析超链接, 如 http://www.abc.com/example.html
(2) 浏览器使用通过DNS获得服务器(www.abc.com)的IP地址
(3) 浏览器建立到服务器的TCP连接
(4) 浏览器发送HTTP 请求: GET /example.html HTTP/1.0
(5) 服务器发送HTTP响应
(6) 释放TCP连接
(7) 浏览器显示网页example.html
非持久连接
响应时间:
o 1 ×RTT:建立TCP连接
o 1 ×RTT: 发送HTTP请求、返回HTTP响应
o 网页对象文件传输时间
响应时间 = 2 ×RTT+文件传输时间
Nonpersistent HTTP
(非持久连接)
o 一个连接只传输一个对象
o Server发送响应后,即关闭连接
o 优点:简单
o 缺点:
n 每个对象都会有2× RTT
n 建立TCP连接需要OS开销
n 用户经常需要同时建立多个TCP连接
o HTTP 1.0
Persistent HTTP
(持久连接)
o 一个TCP连接可以传输多个对象
o 优点:发送完响应后,Server不关闭连接,在一个TCP连接上可以传输多个对象
o HTTP 1.1
持久连接:流水线(pipelining)
Client可以连续发出多个请求,而不必等待前一个请求的响应完成
HTTP消息:请求
HTTP有两类消息:请求(request),响应( response)
消息格式:ASCII ,(易读)
HTTP请求消息
HTTP: cookie
Web服务器对于访问用户的标识信息,可用于识别用户、记录用户信息和访问情况
Cookie涉及下列内容:
1) 在HTTP响应中包含一行set-cookie头信息
2) 在HTTP请求中包含一行cookie头信息
3) Client主机中保存一个cookie文件,由浏览器管理
4) Server端的后台数据库
代理服务器 (Proxy Server)
目的:减轻Web服务器的负担,加快访问速度
在浏览器程序中设置通过代理访问
o 浏览器将所有HTTP请求均发送给代理
n 如果在代理中找到请求的对象,则由代理返回响应
n 否则代理将请求转发给要访问的Web Server,由该Server 响应
n 代理缓存来自WebServer的网页对象
缓存的更新:条件GET
Cache在HTTP请求中包含对象的最后更新时间:If-modified-since:<date>
该时间包含在上次访问时Server的HTTP响应中Last-Modified:<date>
Server如果没有更新对象,则返回HTTP/1.0 304 Not Modified
HTTP的安全性:HTTPS
将HTTP与SSL(Secure Socket Layer)协议相结合
HTTP隧道(Tunneling)
n 隧道:将一个协议数据封装在另一个协议内透明传输的方法
n HTTP隧道:将SSL数据(加密方式、认证信息等)封装在HTTP消息内,代理对于消息中的数据不作处理,直接转发