PHP网络编程学习笔记
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 Web技术原理

Web是World Wide Web的简称,它是在Internet上发布信息、实现各种服务的平台。它采用超文本传输协议(HyperText Transfer Protocol,HTTP)实现浏览者和服务器之间的交互,通过HTTP协议,世界各地的网络用户可以获得各种信息资源。目前Web技术正在发生变革,以Ajax为代表的Web 2.0技术的出现,使用户能感受到更深的体验。本节将介绍HTTP协议的原理和Web程序设计的基础。

1.1.1 HTTP协议的原理

HTTP作为Web技术的核心协议被广泛地应用,HTTP协议采用客户机(浏览器)/服务器的体系机构,当客户端和服务器建立连接后,由客户端发送一个请求给服务器,服务器处理完该请求后返回处理消息给客户端,并关闭此次交互的连接。图1-1说明了客户端和服务器端工作的原型。

图1-1 客户端和服务器端工作的原型

可见,一次HTTP事务的交互分为四个步骤处理,客户端主要以浏览器为主,常见的客户端浏览器包括:Internet Explorer、Netscape Navigator等。它的作用是解释并显示服务器返回的HTML文件和响应信息。我们可以基于HTTP协议访问不同的服务器,HTTP协议支持各种类型的服务器,如FTP、SMTP、Telnet等。

用户在浏览器地址栏里输入网页地址,我们称其为URL,例如:http://localhost/4chapter/4.5/type.php,其中localhost为本地的服务器域名,4chapter为服务器中PHP发布路径下的一个目录,type.php为该目录下的一个具体文件。其具体的通信过程为:

1.用户输入网址后,请求服务器上的type.php文件,服务器接受用户的请求。

2.服务器响应请求,在本机上找到用户请求的文件type.php。

3.服务器将type.php文件返回到用户的浏览器。

4.浏览器接收到文件后,将其解析为HTML格式,并将结果显示给用户。通过图1-2来描述上述原理的操作过程。

图1-2 网页处理的过程

注意:

传统HTTP的请求响应过程,需要重新刷新页面才能获取服务器返回的数据。现在可以使用Ajax技术实现数据的异步响应,详细内容请参考本书后面的章节。

1.1.2 URL介绍

URL(Uniform Resource Locator)统一资源定位符是Internet网页的地址,它由一系列具有一定含义的字符串组成。以下列出了URL字符串的各个组成部分:

Internet资源类型(scheme):如“http://”表示WWW服务器,“ftp://”表示FTP服务器。

服务器地址(host):指出访问页面所在的服务器域名。

端口(port):默认端口为80,对某些资源的访问来说,需给出服务器提供的端口号。

路径(path):指明服务器上某资源的位置(其格式与DOS系统中的格式一样,通常由目录/子目录/文件名这样的结构组成)。与端口一样,路径并非总是需要的。

下图解析了一个页面的URL的各个组成部分,如图1-3所示:

图1-3 URL地址解析图

1.1.3 HTTP请求响应的过程

HTTP请求的主要内容为统一资源定位符(URL)、HTTP方法、HTTP版本号和请求头部。HTTP协议的请求方法很多,最常用的是GET和POST方法。

1.HTTP GET请求

GET方式主要是向服务器索取资源,比如网页、图片等。浏览器向服务器发送基于该URL的HTTP GET请求,以通知服务器要获取哪些资源。以http://localhost/1chapter/1.3.2/Hello.php为例,HTTP GET请求的内容如图1-4所示:

图1-4 HTTP GET请求的内容

2.HTTP POST请求

浏览器可以通过HTTP POST向服务器发送大量的复杂数据,如果提交的数据量很大,就可以选择POST请求来提交,HTTP POST请求的内容如图1-5所示:

图1-5 HTTP POST请求的内容

服务器发回的HTTP响应主要包括响应首部和响应体。响应首部主要是服务器使用的HTTP版本以及请求是否成功,以及响应内容的类型(文本、图片、视音频等),响应体为浏览器将要解释执行并显示给用户的具体内容。一个HTTP响应的内容如图1-6所示:

图1-6 HTTP响应的内容

注意:

默认情况下,Apache2服务器发布应用使用80端口,笔者在本地访问url.html页面,因此服务器名表示为localhost,当然也可以书写为localhost:80