37超文本传送协议HTTP
概念:
(1)为了使超文本的链接能够高效率地完成,需要用 HTTP 协议来传送一切必须的信息。
(2)从层次的角度看,HTTP 是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
例子:
用户点击URL:http://www.tsinghua.edu.cn/chn/yxsz/index.htm后所发生的事件。
事件响应步骤:
(1) 浏览器分析超链指向页面的 URL。
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立 TCP 连接。
(5) 浏览器发出取文件命令:GET /chn/yxsz/index.htm。
(6) 服务器给出响应,把文件 index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
HTTP的主要特点:
(1)HTTP 是面向事务的客户服务器协议。
(2)HTTP 1.0 协议是无状态的 (stateless)。
(3)HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务。
HTTP 的报文结构
HTTP有两类结构:
(1)请求报文——从客户向服务器发送请求报文。
(2)响应报文——从服务器到客户的回答。
由于 HTTP 是面向正文的 (text-oriented),因此在报文中的每一个字段都是一些 ASCII 码串,因而每个长度都是不确定字段的。
注意:状态码都是三位数字。
(1)1xx 表示通知信息的,如请求收到了或正在进行处理。
(2)2xx 表示成功,如接受或知道了。
(3)3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
(3)4xx 表示客户的差错,如请求中有错误的语法或不能完成。
(4)5xx 表示服务器的差错,如服务器失效无法完成请求。