HTTP 是超文本传输协议,是客户端浏览器或其他程序与Web 服务器之间的应用层通信协议。在Internet 上的Web 服务器上存放的都是超文本信息,客户机需要通过HTTP 传输所要访问的超文本信息。HTTP 包含命令和传输信息,不仅可用于Web 访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
1.统一资源定位符
在浏览器的地址栏里输入的网站地址叫作统一资源定位符(Uniform Resource Locator,URL,)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet 地址。当用户在浏览器的地址栏中输入一个URL 或是单击一个超级链接时,URL 就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web 服务器上站点的网页代码提取出来,并翻译成直观的网页。因此,在认识HTTP 之前,有必要先弄清楚URL 的组成。
例如,http: //www.abc.com/china/index.htm,它的含义如下:
(1)“http: //”:代表超文本传输协议,通知abc.com;服务器显示Web 页,通常不用输入。
(2)“www”:代表一个Web(万维网)服务器。
(3)“abc.com/”:这是装有网页的服务器的域名,或站点服务器的名称。
(4)“china/”:为该服务器上的子目录,类似于计算机中的文件夹。
(5)“index.htm”:是文件夹中的一个HTML 文件(网页)名称。
2.HTTP 的主要特点
HTTP 的主要特点如下:
(1)支持客户/服务器模式。
(2)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定的客户与服务器联系的类型不同。由于HTTP 简单,使得HTTP 服务器的程序规模小,因而通信速度很快。
(3)灵活:HTTP 允许传输任意类型的数据对象。
(4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
(5)无状态:HTTP 是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。(www.xing528.com)
3.HTTP 的工作过程
在WWW 中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。
基于HTTP 的客户/服务器模式的信息交换过程分4 个过程:建立连接、发送请求信息、发送响应信息、关闭连接。
其实简单说就是任何服务器除了包括HTML 文件以外,还有一个HTTP 驻留程序,用于响应用户请求。用户的浏览器是HTTP 客户,向服务器发送请求,当用户在浏览器中输入一个开始文件或单击了一个超级链接时,浏览器就向服务器发送HTTP 请求,此请求被送往由IP 地址指定的URI。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据和控制信息,即告诉网络怎样处理数据包。
TCP/IP 决定了每个数据包的格式。如果事先不告诉用户,用户可能不会知道信息被分成用于传输和再重新组合起来的许多小块。
4.HTTP 格式
HTTP 有两类报文:
(1)请求报文:从客户向服务器发送请求报文,其格式如图3.17(a)所示。
(2)响应报文:从服务器到客户的回答,其格式如图3.17(b)所示。由于HTTP 是面向正文的,报文中的每一个字段都是一些ASCII 码串,因而每个字段的长度都是不确定的。
图3.17 HTTP 请求报文和响应报文
HTTP 请求报文和响应报文都是由以下3 部分组成的。这两个报文格式的区别就是开始行不同。
(1)开始行:用于区别是请求报文还是响应报文。在请求报文中的开始行叫作请求行,响应报文中的开始行叫作状态行。
(2)首部行:用来说明服务器或报文主体的一些信息。
(3)附属体行:在请求报文中一般都不用这个字段,而在响应报文中也可能没这个字段,该字段的内容为HTML 数据实体。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。