WWW:HTTP协议、URL、HTML。
6.5 WWW
6.5.1 WWW的概念与组成结构
- 万维网(World Wide Web):一个大规模的、分布式的、联机式的信息储藏所,简称Web。
- 资源:指互联网上可被访问的任何对象(文件目录、文档、图像、声音等),通过统一资源定位符(URL)标识,并通过超文本传输协议(HTTP)发给用户。
- 超文本标记语言(HTML):使网页能够使用超链接方便地链接其他页面,并在屏幕上显示。
万维网的内核三标准
| 标准 | 作用 |
|---|---|
| 统一资源定位符(URL) | 标志万维网上的各种文档,使每个文档在整个互联网范围内具有唯一的标识符 |
| 超文本传送协议(HTTP) | 应用层协议,使用TCP连接进行可靠传送,规范万维网客户与服务器间的交互 |
| 超文本标记语言(HTML) | 使网页设计者可用链接从本页面链接到互联网上任何一个网页,并在主机屏幕上显示 |
工作方式
- 客户-服务器方式:浏览器(用户主机上的客户程序)向服务器程序发出请求,服务器返回所请求的万维网文档。在一个客户程序主窗口上显示出的文档称为页面(page)。
统一资源定位符(URL)
- 相当于一个文件名在网络范围的扩展,是与互联网相连的机器上的任何可访问对象的一个指针。
- 格式:
协议://主机名:端口/路径- 协议:最常用
http,其次ftp,后跟://。 - 主机名:存放万维网文档的主机的域名(通常以www开头),也可用IP地址。
- 端口:默认端口(HTTP为80)可省略,否则必须写明。
- 路径:可包含若干斜线,有时可以省略。
- 协议:最常用
6.5.2 HTTP协议
1. HTTP的操作过程
- HTTP是面向事务的应用层协议,定义了浏览器与服务器之间请求和响应的交互格式与规则。
- 服务器进程监听TCP端口80,等待浏览器连接。
- 典型过程(以访问
http://www.tsinghua.edu.cn/news.htm为例):- 浏览器分析URL。
- 浏览器向DNS请求解析IP地址。
- DNS解析出IP地址并返回。
- 浏览器与服务器建立TCP连接(默认80端口)。
- 浏览器发出HTTP请求:
GET /news.htm。 - 服务器通过HTTP响应返回
news.htm文件。 - 释放TCP连接。
- 浏览器解释文件并显示。
例题(2014年40题)
使用浏览器访问某大学Web网站主页时,不可能使用到的协议是(D. SMTP)。
(SMTP是邮件协议,与Web访问无关)
2. HTTP的主要特点
- 基于TCP:保证可靠传输,但HTTP本身无连接(交换报文前不需建立HTTP连接)。
- 无状态(stateless):服务器不记住客户信息,简化设计,易于支持大量并发请求。
- Cookie:用于跟踪用户活动。服务器生成唯一识别码(Cookie)发给客户端,客户端再次访问时携带该Cookie,服务器据此识别用户。
- 持续连接与非持续连接:
- HTTP/1.0:非持续连接,每个请求需要建立TCP连接,开销为2倍RTT(一次连接,一次请求/响应)。
- HTTP/1.1:持续连接,一次TCP连接可传送多个请求/响应。持续连接又有两种方式:
- 非流水线方式:收到前一个响应后才能发下一个请求,每个对象需一个RTT。
- 流水线方式:无需等待响应即可连续发送多个请求,所有对象仅需一个RTT。
例题(某题)
网络拓扑中,本地域名服务器递归查询,其他域名服务器迭代查询,RTT=10ms。主机H通过超链接请求http://www.abc.com/index.html,最短时间与最长时间分别是?
- 最短:DNS递归+HTTP一次RTT?需考虑解析与连接。典型答案为20ms, 40ms(解析10ms+HTTP一次RTT=20ms;若需多次解析则更长)。根据常见解析,选C。
3. HTTP的报文结构
- HTTP报文是面向文本的,每个字段为ASCII码串。
- 两类报文:请求报文(客户→服务器)、响应报文(服务器→客户)。
- 报文由三部分组成:
- 开始行:请求行(请求报文)或状态行(响应报文)。
- 首部行:说明浏览器、服务器或报文主体信息,可多行,以空行结束。
- 实体主体:通常为空或包含数据。
请求行格式:方法 请求资源的URL HTTP版本
- 方法(常用):
GET:请求读取URL指定的信息HEAD:请求读取URL指定信息的首部POST:给服务器添加信息(如注释)PUT:在指定URL下存储一个文档DELETE:删除指定URL的资源TRACE:环回测试CONNECT:用于代理服务器
状态行格式:HTTP版本 状态码 短语
- 状态码分类:
- 1xx:通知信息
- 2xx:成功(如
202 Accepted) - 3xx:重定向
- 4xx:客户端错误(如
400 Bad Request、404 Not Found) - 5xx:服务器错误
请求报文示例:
1 | GET /dir/index.htm HTTP/1.1 |
例题(2015年40题)
某浏览器发出的HTTP请求报文如下:
1 | GET /index.html HTTP/1.1 |
错误的叙述是(C. 该浏览器请求使用持续连接)
(Connection: Close表示非持续连接)
4. 应用层协议与端口号总结
| 应用程序 | 使用协议 | 熟知端口号 |
|---|---|---|
| FTP数据连接 | TCP | 20 |
| FTP控制连接 | TCP | 21 |
| TELNET | TCP | 23 |
| SMTP | TCP | 25 |
| DNS | UDP | 53 |
| TFTP | UDP | 69 |
| HTTP | TCP | 80 |
| POP3 | TCP | 110 |
| SNMP | UDP | 161 |
例题(2018年33题)
下列TCP/IP应用层协议中,可以使用传输层无连接服务的是(B. DNS)。
(DNS使用UDP,其他均使用TCP)
习题
万维网(WWW)是资源的网络,它主要由哪些部分构成?(A. HTML、URL和HTTP)
谢希仁教材6-09
若超链指向无效的计算机名字,浏览器将报告“无法解析主机名”或类似错误。谢希仁教材6-10
除HTTP外,还需要DNS(应用层)和UDP/TCP(传输层,DNS用UDP,HTTP用TCP)。谢希仁教材6-14
(1) 错。一个网页有1个文本文件和3个图片,通常每个对象需一个HTTP请求,共4个请求,但可在一个持续连接中完成。
(2) 对。同一个服务器,HTTP/1.1持续连接可传送多个页面。
(3) 错。非持续连接每个HTTP请求需单独的TCP连接,一个TCP报文段只能装一个HTTP请求。
(4) 错。响应报文可能没有实体主体(如HEAD请求的响应)。谢希仁教材6-15
解析时间 = $RTT_1 + RTT_2 + \dots + RTT_n$(递归解析可能累加),加上读取网页的RTT_w,总时间 = $\sum RTT_i + RTT_w$。谢希仁教材6-16
设一个对象传输时间为$RTT$(忽略数据本身时间)。
(1) 没有并行TCP的非持续HTTP:每个对象需一次连接+一次请求/响应,3个对象+主页面共4次,时间 = $4 \times (2RTT) = 8RTT$。
(2) 使用并行TCP的非持续HTTP:若并行连接数足够,可同时建立多个连接,时间 = $2RTT + 2RTT = 4RTT$(主页面一次,并行取三个图片一次)。
(3) 流水线方式的持续HTTP:一次连接,所有请求流水线发送,时间 = $2RTT$(建立连接+请求/响应)。
笔记结束