其他分享
首页 > 其他分享> > 外文翻译 | Apache入门介绍

外文翻译 | Apache入门介绍

作者:互联网

文章目录

本文来源:https://code.tutsplus.com/tutorials/an-introduction-to-apache–net-25786

Apache 介绍

​   如果你对Apache一无所知,现在是时候了解Apache背后发生的一切了!

​    Apache是最流行的web服务器

​    Web服务器的工作基本上是接受来自客户端的请求,并向这些请求发送响应。Web服务器获取URL,将其转换为文件名(用于静态请求),然后从本地磁盘通过Internet发送该文件,或者将其转换为程序名(用于动态请求),并执行该文件,然后执行该操作。 然后通过Internet将该程序的输出返回客户端。如果由于某种原因,Web服务器无法处理和完成客户端的请求,则返回错误消息。Web服务器一词可以指机器(计算机/硬件)本身,也可以指接收请求并发出响应的软件。

​    Apache是最流行的Web服务器(第二流行的是Microsoft的IIS)。仅举几例,其受欢迎的原因主要如下:

  1. 可免费和安装
  2. 开源:源代码对任何人和所有人都是可见的,这基本上使任何人(可以挑战挑战者)可以对代码进行调整、优化并修复错误和安全漏洞。人们可以在原有的基础上添加新功能和编写新模块。
  3. 它可以满足所有需求:Apache既适用于只有一个或者两个页面的小型网站,又适用于成百上千个页面的大型网站,Apache每月可为数百万(甚至不止)的访客提供服务。 它即可以为静态内容提供服务又可以为动态内容提供服务。

什么是Apache?

您不需要或想要的功能可以轻松删除。

  Apache HTTP服务器是一种软件(或程序),该软件在操作系统下在后台运行,该操作系统支持多任务处理,并为与其连接的其他应用程序(例如客户端Web浏览器)提供服务。Apache最初是为与Linux / Unix操作系统一起使用而开发的,但后来也可在其他操作系统(包括Windows和Mac)下使用。在UNIX下运行的Apache二进制文件称为HTTPd(HTTP后台程序的缩写),而在Win32下运行的Apache二进制文件名称为Apache.exe。

  在Linux上安装Apache确实需要一些编程技能(尽管不是很困难)。但将Apache安装在Windows平台上很简单,因为您可以通过图形用户界面运行它。

  Apache的原始核心是相当简单的,并且功能有限。但是Apache的强大之处在于可以由程序员编写许多附加模块,并且可以安装这些功能模块来扩展服务器的能力。要添加一个新模块,您需要做的就是安装它并重新启动Apache服务器。可以轻松删除不需要或不需要的功能,这实际上是一个非常好的特性,因为它可使服务器保持小巧轻便,启动速度更快,消耗更少的系统资源和内存,并减少服务器的安全漏洞。值得一提的是,Apache服务器还支持第三方模块,并且其中一些模块已作为永久性功能添加到Apache中。Apache服务器可以很容易的与其他开源应用程序(如PHP和MySQL等)集成使用,能够使其发挥的作用比以前单独使用更加强大的作用。

  最简单形式的Web服务器是一台具有特殊软件的计算机,并且具有允许其连接到其他设备的Internet连接。

  连接到网络的每个设备都有一个IP地址,其他设备可以通过该IP地址连接并与之通信。 该IP地址有点像您在现实生活中需要用来呼叫或访问您的任何联系人的常规地址。 如果他们没有地址,您将不会打电话或联系他们。 IP地址具有完全相同的目的。 如果一台设备没有IP地址,则同一网络上的其他计算机将不知道如何访问它。

  Apache服务器提供了客户端可能会使用的许多服务。 这些服务通过不同的端口使用各种协议,包括:使用80端口的超文本传输协议(HTTP),使用25端口的简单邮件传输协议(SMTP),用于将域名映射到的域名服务(DNS) 它们的相应IP地址(使用53端口)和用于通常通过端口21上传和下载文件的文件传输协议(FTP)。

Apache的工作方式

​  Apache的主要作用是通过网络进行通信,它使用TCP / IP协议(传输控制协议/网际协议,该协议允许IP地址在同一网络内的设备相互通信)。

  TCP / IP协议是一组规则,该规则用于定义客户端如何发出请求以及服务器如何响应,以及确定如何传输,传递,接收和确认数据。

  Apache服务器被设置为通过配置文件运行,在配置文件中添加了控制其行为的指令。在空闲状态下,Apache监听配置文件(HTTPd.conf)中标识的IP地址。每当它接收到请求时,它都会分析数据头,在应用配置文件中为Apache指定具体的规则,并采取行动。

  但是一台服务器可以托管许多网站,而不仅仅是一个网站,尽管对于外部世界来说,它们似乎彼此分开。 为此,即使这些网站最终都映射到同一台计算机,也必须为每个网站分配一个不同的名称。 这是通过使用所谓的虚拟主机来完成的。

  由于IP地址难以记住,因此,作为特定站点的访问者,我们通常在浏览器的URL地址框中输入各自的域名。 然后,浏览器连接到DNS服务器,该DNS服务器将域名转换为IP地址。 然后浏览器获取返回的IP地址并连接到它。 浏览器还会发送带有请求的Host标头,这样,如果服务器托管多个站点,它将知道要回发哪个站点。

  例如,在浏览器的地址字段中输入www.google.com可能会将以下请求发送到该IP地址的服务器:

  1. Get/HTTP/1.1

  2. Host: www.google.com

  第一行包含几条信息。 首先,有一个方法(在这种情况下是GET),URI,它指定要检索的页面或要运行的程序(在这种情况下,它是由/表示的根目录),最后是 HTTP版本(在本例中为HTTP 1.1)。

  HTTP是一种请求/响应无状态协议 1

  HTTP是一种请求/响应无状态协议。 这是一组规则,用于控制客户端和服务器之间的通信。 客户端(通常但不一定是Web浏览器)发出请求,服务器发送回响应,并且通信停止。当服务器不进行通信时,就如其他协议在请求结束后会处于等待状态。

  如果请求成功,则服务器将返回200状态代码(表示已找到该页面),响应标头以及所请求的数据。 Apache服务器的响应标头可能类似于以下内容:

HTTP/1.1 200 OK
Date: Sun, 10 Jun 2012 19:19:21 GMT
Server: Apache
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Last-Modified: Sun, 10 Jun 2012 19:19:21 GMT
Vary: Accept-Encoding,User-Agent
Content-Type: text/html; charset=UTF-8
Content-Length: 7560

  响应标头中的第一行是状态行。 它包含HTTP版本和状态代码。 接下来是日期,然后是有关主机服务器和检索到的数据的一些信息。 Content-Type标头使客户端知道检索到的数据的类型,从而知道如何处理它。 Content-Length让客户端知道响应主体的大小。 如果请求没有抛出,客户端将获得错误代码和消息,例如在找不到页面错误的情况下的以下响应标头:

HTTP/1.1 404 Not Found

TCP/IP Protocol

  TCP / IP协议实际上是建立在两个协议至上的另一协议。

  IP协议负责将传输的数据从一个点传输到另一点。 它获取要在两点之间传输的数据,将其拆分为较小的数据包,将源地址和目标地址附加到每个数据包,然后传输数据。

  TCP协议处理包括建立双方之间的连接,确保数据到达其目的地,处理任何数据丢失以及管理数据恢复的部分。

  收到消息后,如果一切顺利,目标方将向发送的主机发送一个已确认(ACK)消息,并通知其数据到达。 如果出现问题(例如发生数据丢失情况),则目的地将发送“未确认(NAK)”消息,通知问题的发送主机,并通知它需要重新发送数据包。

  如前所述,Apache提供了许多服务,客户端可能想连接到这些服务,以加以利用或从中受益。 TCP协议可以通过特定端口区分不同的服务,如此以来,TCP协议可以管理每个服务进程。 这样,可以确保任何给定的接口(或主机)都可以提供多种服务。 因此,当客户端连接到主机时,它将端口号和IP地址一起传递。 浏览器使用HTTP协议,默认情况下使用端口80,因此无需进一步说明。

  下图是我的FTP软件(WinScp)的快照。 如您所见,对于FTP服务器,我不仅需要提供IP地址(或输入域名),而且还需要指定服务器通过其提供服务的端口号。 对于FTP,端口号是21。对于SFTP(安全FTP),端口号是22。

在这里插入图片描述
在这里插入图片描述

  在UNIX下,可以在文件/ etc / services中找到所提供的服务及其相应端口号的列表。 以下命令将显示文件的内容:

more /etc/services

  下面的截图显示了文件的一部分。可以看到,第一列列出了服务,后面是要访问的端口号和服务使用的协议名。
在这里插入图片描述

  在Windows下,该文件称为服务,可以在C:\ WINNT \ system32 \ drivers \ etc \下找到

Inetd

  为了保留系统资源,相对于不断运行的后台程序,UNIX通过Internet后台程序(inetd)处理许多服务。 inetd是一个超级服务器,它侦听各种端口并在接收到连接请求时通过启动适当的后台程序(程序)的新副本来处理连接请求。 然后,程序的新副本从那里获取并与客户端一起使用,并且inetd返回侦听服务器端口,以等待新的客户端请求得到处理。 处理完请求并且通信结束后,后台程序将退出。

​ 为了保留系统资源,UNIX通过Internet后台程序处理其许多服务。

总体结构

  如前所述,Apache可以安装在各种操作系统上。 无论使用什么平台,托管网站通常都会具有四个主要目录:htdocs,conf,logs,cgi-bin。

  htdocs是默认的Apache Web服务器文档目录,这意味着它是公共目录,其内容通常可供通过Web连接的客户端使用。 它包含所有静态页面和动态内容,一旦收到针对它们的HTTP请求,便可以提供这些内容。 由于htdocs下的文件和子目录可供公众使用,因此正确处理文件权限非常重要,以免影响服务器的安全。

​   conf是所有服务器配置文件所在的目录。 配置文件基本上是纯文本文件,在其中添加了指令以控制Web服务器的行为和功能。 通常将每个指令放在单独的行上,并且**#**指示注释,因此忽略该行开头的行。

​   logs是保存服务器日志的目录,包括Apache访问日志和错误日志。 Apache HTTP Server提供了多种不同的机制来记录发生在其上的所有事件,从初始请求到URL映射过程,再到连接的最终解决,包括过程中可能发生的任何错误。 除此之外,第三方模块可以提供日志记录功能,或将日志条目写入现有的日志文件中,并且诸如PHP脚本或其他处理程序之类的应用程序可以将错误消息发送到服务器错误日志。

​   cgi-bin是保存CGI脚本的目录。 CGI(通用网关接口)定义了一种Web服务器与外部内容生成程序进行交互的方式,这些程序通常称为CGI程序或CGI脚本。 这些程序或shell脚本由Apache代表其客户端执行。

总结

  ​ 网络上超过一半的网站都在用Apache

​   自1996年以来,Apache一直是Internet上最流行的Web服务器,超过一半的Web站点都在其中运行。 它在塑造和发展当今的互联网方面发挥了关键作用。 其成功背后的原因显而易见,从目前的情况来看,它可能至少会在相当一段时间内保持领先地位。本文是一个Apache服务器的一个入门课程,我希望它有助于理解Apache服务器的含义以及Apache服务器通常的工作方式。


  1. 无状态协议是一种通信协议,其中接收方(通常是服务器)没有保留会话信息。 ↩︎

标签:Web,HTTP,入门,外文,IP地址,Apache,服务器,客户端
来源: https://blog.csdn.net/YuvalNoah/article/details/111959783