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为例):
    1. 浏览器分析URL。
    2. 浏览器向DNS请求解析IP地址。
    3. DNS解析出IP地址并返回。
    4. 浏览器与服务器建立TCP连接(默认80端口)。
    5. 浏览器发出HTTP请求:GET /news.htm
    6. 服务器通过HTTP响应返回news.htm文件。
    7. 释放TCP连接。
    8. 浏览器解释文件并显示。

例题(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码串。
  • 两类报文:请求报文(客户→服务器)、响应报文(服务器→客户)。
  • 报文由三部分组成:
    1. 开始行:请求行(请求报文)或状态行(响应报文)。
    2. 首部行:说明浏览器、服务器或报文主体信息,可多行,以空行结束。
    3. 实体主体:通常为空或包含数据。

请求行格式:方法 请求资源的URL HTTP版本

  • 方法(常用):
    • GET:请求读取URL指定的信息
    • HEAD:请求读取URL指定信息的首部
    • POST:给服务器添加信息(如注释)
    • PUT:在指定URL下存储一个文档
    • DELETE:删除指定URL的资源
    • TRACE:环回测试
    • CONNECT:用于代理服务器

状态行格式:HTTP版本 状态码 短语

  • 状态码分类:
    • 1xx:通知信息
    • 2xx:成功(如202 Accepted
    • 3xx:重定向
    • 4xx:客户端错误(如400 Bad Request404 Not Found
    • 5xx:服务器错误

请求报文示例

1
2
3
4
5
6
GET /dir/index.htm HTTP/1.1
Host: www.xyz.edu.cn
Connection: close
User-Agent: Mozilla/5.0
Accept-Language: cn

例题(2015年40题)
某浏览器发出的HTTP请求报文如下:

1
2
3
4
GET /index.html HTTP/1.1
Host: www.test.edu.cn
Connection: Close
Cookie: 123456

错误的叙述是(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)


习题

  1. 万维网(WWW)是资源的网络,它主要由哪些部分构成?(A. HTML、URL和HTTP)

  2. 谢希仁教材6-09
    若超链指向无效的计算机名字,浏览器将报告“无法解析主机名”或类似错误。

  3. 谢希仁教材6-10
    除HTTP外,还需要DNS(应用层)和UDP/TCP(传输层,DNS用UDP,HTTP用TCP)。

  4. 谢希仁教材6-14
    (1) 错。一个网页有1个文本文件和3个图片,通常每个对象需一个HTTP请求,共4个请求,但可在一个持续连接中完成。
    (2) 对。同一个服务器,HTTP/1.1持续连接可传送多个页面。
    (3) 错。非持续连接每个HTTP请求需单独的TCP连接,一个TCP报文段只能装一个HTTP请求。
    (4) 错。响应报文可能没有实体主体(如HEAD请求的响应)。

  5. 谢希仁教材6-15
    解析时间 = $RTT_1 + RTT_2 + \dots + RTT_n$(递归解析可能累加),加上读取网页的RTT_w,总时间 = $\sum RTT_i + RTT_w$。

  6. 谢希仁教材6-16
    设一个对象传输时间为$RTT$(忽略数据本身时间)。
    (1) 没有并行TCP的非持续HTTP:每个对象需一次连接+一次请求/响应,3个对象+主页面共4次,时间 = $4 \times (2RTT) = 8RTT$。
    (2) 使用并行TCP的非持续HTTP:若并行连接数足够,可同时建立多个连接,时间 = $2RTT + 2RTT = 4RTT$(主页面一次,并行取三个图片一次)。
    (3) 流水线方式的持续HTTP:一次连接,所有请求流水线发送,时间 = $2RTT$(建立连接+请求/响应)。


笔记结束