客户端,服务器和URL
Web上的地址用URL表示 - 统一资源定位符 - 指定协议(例如http
),服务器名称(例如 www.apache.org
),URL路径(例如 /docs/current/getting-started.html
),以及可能的查询字符串(例如?arg=value
),用于将附加参数传递给服务器。
客户端(例如,web浏览器)使用指定的协议连接到服务器(例如,您的Apache HTTP Server),并使用URL路径请求资源。
URL路径可以表示服务器上的任意数量的事物。它可能是一个文件(如getting-started.html
)处理程序(如服务器状态)或某种程序文件(如index.php
)。我们将在下面的网站内容部分讨论这个问题。
服务器将发送一个响应,该响应由状态代码和可选的响应主体组成。状态代码指示请求是否成功,如果不成功,则表示存在何种错误情况。这告诉客户端应该如何处理响应。您可以在HTTP Server wiki中阅读可能的响应代码 。
事务的详细信息和任何错误条件都写入日志文件。下面将在“ 日志文件和疑难解答”部分中对此进行更详细的讨论。
主机名和DNS
为了连接到服务器,客户端首先必须将服务器名称解析为IP地址 - 服务器所在的Internet上的位置。因此,为了使您的Web服务器可访问,服务器名称必须位于DNS中。
如果您不知道如何执行此操作,则需要与网络管理员或Internet服务提供商联系,以便为您执行此步骤。
多个主机名可能指向相同的IP地址,并且可以将多个IP地址连接到同一物理服务器。因此,您可以使用称为虚拟主机的功能在同一物理服务器上运行多个Web站点。
如果要测试的服务器不可访问Internet,则可以将主机名放在hosts文件中以进行本地解析。例如,您可能希望在主机文件中放置一条记录,以将请求映射www.example.com
到本地系统,以进行测试。此条目如下所示:
127.0.0.1 www.example.com
主机文件可能位于/etc/hosts
或 C:Windowssystem32driversetchosts
。
你可以阅读更多有关在hosts文件Wikipedia.org/wiki/Hosts_(file)的,和更多的DNS Wikipedia.org/wiki/Domain_Name_System。
配置文件和指令
Apache HTTP Server通过简单的文本文件配置。这些文件可能位于各种位置,具体取决于您安装服务器的具体程度。可以在httpd wiki中找到这些文件的常用位置。如果从源安装httpd,则配置文件的默认位置为 /usr/local/apache2/conf
。通常调用默认配置文件httpd.conf
。这也可能在服务器的第三方分发中有所不同。
为了便于管理,配置经常被分成多个较小的文件。这些文件通过Include
指令加载。这些子文件的名称或位置并不神奇,并且从一个安装到另一个安装可能会有很大差异。排列和细分这些文件对您来说最有意义。如果您默认使用的文件排列对您没有意义,请随意重新排列。
通过在这些配置文件中放置配置指令来配置服务器。指令是一个关键字,后跟一个或多个设置其值的参数。
的问题:“ 我应该在哪里把该指令? ”你想要一个指令是有效的,一般考虑回答。如果它是一个全局设置,它应该出现在配置文件中,任何外<Directory>
,<Location>
,<VirtualHost>
,或其他部分。如果它只应用于特定目录,那么它应该进入<Directory>
引用该目录的 部分,依此类推。有关这些部分的进一步讨论,请参阅配置部分文档。
除主要配置文件外,某些指令可能.htaccess
位于内容目录中的 文件中。 .htaccess
文件主要供那些无法访问主服务器配置文件的人使用。您可以.htaccess
在.htaccess
howto中阅读有关文件的更多信息 。
网站内容
网站内容可以采用许多不同的形式,但可以大致分为静态和动态内容。
静态内容类似于HTML文件,图像文件,CSS文件以及驻留在文件系统中的其他文件。该DocumentRoot
指令指定文件系统中应放置这些文件的位置。该指令可以全局设置,也可以按虚拟主机设置。查看配置文件以确定如何为您的服务器设置此项。
通常,在index.html
未指定文件名的情况下请求目录时,将提供调用的文档。例如,如果DocumentRoot
设置为 /var/www/html
并且发出请求 http://www.example.com/work/
,则该文件/var/www/html/work/index.html
将提供给客户端。
动态内容是在请求时生成的任何内容,可能会从一个请求更改为另一个请求。有许多方法可以生成动态内容。各种处理程序可用于生成内容。可以编写CGI程序来为您的站点生成内容。
像mod_php这样的第三方模块可用于编写执行各种操作的代码。许多使用各种语言和工具编写的第三方应用程序都可以在Apache HTTP Server上下载和安装。支持这些第三方内容超出了本文档的范围,您应该找到他们的文档或其他支持论坛来回答您关于它们的问题。