Web的应用层协议是超文本传输协议(HyperText Transfer Protocol, HTTP),它是Web的核心。HTTP由两个程序实现:一个客户程序和一个服务器程序。客户程序和服务器程序运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP定义了这些报文的结构以及客户和服务器进行报文交换的方式。
回顾Web术语
Web页面(也叫文档)是由对象组成的。一个对象(object)只是一个文件,诸如一个 HTML文件、一个JPEG图形、一个Java小程序这样的文件,它们通过一个 URL地址寻址。多数 Web页面含有一个 HTML基本文件,以及几个引用对象。例如,如果一个Web页面包含HTML文本和5个JPEG图形,那么这个Web页面有6个对象:一个 HTML 基本文件加5个图形。HTML 基本文件通过对象的URL地址引用页面中的其他对象。每个URL地址由两部分组成:存放对象的服务器主机名和对象的路径名。例如,URL地址 http://www.someSchool. edu/ someDepart-ment/picture. gif,其中的www. someSchool. edu就是主机名,/someDepartment/ picture. gif 就是路径名。因为Web 浏览器实现了HTTP的客户端,所以在Web环境中经常交替使用“浏览器”和“客户”这两个术语。Web服务器实现了HTTP的服务器端,它用于存储Web对象,每个对象由 URL寻址。
HTTP使用TCP作为它的支撑运输协议。HTTP客户首先发起一个与服务器的TCP连接。一旦连接建立,该浏览器和服务器进程就可以通过套接字接口访问TCP。客户向它的套接字接口发送 HTTP请求报文并从它的套接字接口接收HTTP 响应报文。类似地,服务器从它的套接字接口接收HTTP 请求报文和向它的套接字接口发送 HTTP 响应报文。
注意:
服务器向客户发送被请求的文件,而不存储任何关于该客户的状态信息。假如某个特定的客户在短短的几秒钟内两次请求同一个对象,服务器并不会因为刚刚为该客户提供了该对象就不再做出反应,而是重新发送该对象,就像服务器已经完全忘记不久之前所做过的事一样。因为HTTP服务器并不保存关于客户的任何信息,所以我们说HTTP是一个无状态协议(stateless protocol)。