Heim php教程 PHP源码 Shell脚本实现的一个简易Web服务器例子分享_linux shell

Shell脚本实现的一个简易Web服务器例子分享_linux shell

May 25, 2016 pm 05:10 PM
shell脚本 web服务器

这篇文章主要介绍了Shell脚本实现的一个简易Web服务器例子分享,本文实现的Web服务器非常简单实用,可以在你不想安装nginx、apache等大型WEB服务器时使用,需要的朋友可以参考下

假设你想测试网页和一些CGI,而你又不想麻烦Apache安装完整的包。这个快速的shell脚本可能只是你所需要的东西。

简而言之,一个web服务器是一个应用程序,该应用程序将本地文本文件通过网络发送给客户的请求。如果你让另一个程序(例如inetd)处理网络情况下,web服务器可以减少到只有 cat "文件名”发送到stdout。当然,困难将提取部分文件名的HTTP请求字符串:任何一个Bash脚本无法轻易做到。

脚本

我们的脚本应该像其他任何脚本一样,加上一些定义:

#!/bin/bash
base=/var/www


inetd将从远程主机接收到的数据传递给我们的脚本,第一行是标准的HTTP请求,后跟零个或更多的头文件。我们记录下请求,并退出休眠:

read request

while /bin/true; do
  read header
  [ "$header" == $'\r' ] && break;
done

最麻烦的部分:从请求的数据中提取URL并在本地文件中找到对应文件:

url="${request#GET }"
url="${url% HTTP/*}"
filename="$base$url"

返回含有头部信息的文件内容。

if [ -f "$filename" ]; then
  echo -e "HTTP/1.1 200 OK\r"
  echo -e "Content-Type: `/usr/bin/file -bi \"$filename\"`\r"
  echo -e "\r"
  cat "$filename"
  echo -e "\r"
else
  echo -e "HTTP/1.1 404 Not Found\r"
  echo -e "Content-Type: text/html\r"
  echo -e "\r"
  echo -e "404 Not Found\r"
  echo -e "Not Found
           The requested resource was not found\r"
  echo -e "\r"
fi

好了,脚本完了。

安装

为了使它工作,你必须添加以下行到/etc/inetd.conf文件:

www stream tcp nowait nobody /usr/local/bin/webd webd

webd就是你刚刚创建的脚本名称。

使用/etc/init.d/inetd restart使脚本生效后,就可以测试它了。在/var/www下放一些HTML文件,打开你最喜欢的Web浏览器的输入以下地址测试:http://www.php.cn/

请注意,如果你的电脑连接这一个不安全的网络,这个脚本可能不算一个聪明的事,因为谁都可以通过80端口访问你硬盘上的文件。一个更好的办法是使用 tcpd 来保证只允许本地连接。我会写一些相关的信息,发挥你的想象力去干吧!

什么是CGI

就像这个,WEB服务器是没什么用处的,它什么都做不到,而且你可以用其他方法来访问你的文件。我们需要CGI的支持(哪怕是很简单的)。

理论:不通过网络发送一个文本文件,我们运行一个可执行文件,并将其输出。在这之前,我们已经处理的HTTP请求的一步,建立一个 QUERY_STRING变量输出到可执行文件。

要做到这样,你只需要把第三步的代码替换成这个样子的就可以了。

url="${request#GET }"
url="${url% HTTP/*}"
query="${url#*\?}"
url="${url%%\?*}"

filename="$base$url"

if [ "$query" != "$url" -a -x "$filename" ]; then
  export QUERY_STRING="$query"
  echo -e "HTTP/1.1 200 OK\r"
  "$filename"
  echo -e "\r"
  exit 0
fi

当然,这个小玩意的性能无法与Apache相比,这只是一个小玩意。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie führe ich eine .sh-Datei im Linux-System aus? Wie führe ich eine .sh-Datei im Linux-System aus? Mar 14, 2024 pm 06:42 PM

Wie führe ich eine .sh-Datei im Linux-System aus? In Linux-Systemen ist eine .sh-Datei eine Datei, die als Shell-Skript bezeichnet wird und zum Ausführen einer Reihe von Befehlen verwendet wird. Das Ausführen von .sh-Dateien ist ein sehr häufiger Vorgang. In diesem Artikel wird erläutert, wie .sh-Dateien in Linux-Systemen ausgeführt werden, und es werden spezifische Codebeispiele bereitgestellt. Methode 1: Verwenden Sie einen absoluten Pfad, um eine .sh-Datei auszuführen. Um eine .sh-Datei in einem Linux-System auszuführen, können Sie einen absoluten Pfad verwenden, um den Speicherort der Datei anzugeben. Im Folgenden sind die spezifischen Schritte aufgeführt: Öffnen Sie das Terminal

So konvertieren Sie ESD-Dateien in das ISO-Format So konvertieren Sie ESD-Dateien in das ISO-Format Feb 19, 2024 am 08:37 AM

Eine ESD-Datei ist ein Komprimierungsformat, das in Windows-Betriebssystemen verwendet wird, während eine ISO-Datei eine Disc-Image-Datei ist, die zum Erstellen einer Disc-Kopie oder eines virtuellen optischen Laufwerks verwendet wird. Wenn wir ESD-Dateien in ISO-Dateien konvertieren müssen, liegt das möglicherweise daran, dass ISO-Dateien häufiger verwendet werden und einfacher zu verwenden sind. Im Folgenden werden einige gängige Methoden zum Abschließen dieses Konvertierungsprozesses vorgestellt. Methode 1: ESDDecrypter verwenden ESDDecrypter ist ein Programm, das speziell zum Entschlüsseln und Konvertieren von ESD-Dateien in ISO-Dateien verwendet wird.

Geheimnisse des Linux-Root-Dateisystems Geheimnisse des Linux-Root-Dateisystems Feb 15, 2024 pm 01:42 PM

Linux ist ein Open-Source-, portables und anpassbares Betriebssystem, das in verschiedenen Bereichen wie Servern, Desktops, eingebetteten Geräten usw. weit verbreitet ist. Der Kern von Linux ist der Kernel, der für die Verwaltung der Hardwareressourcen und die Bereitstellung grundlegender Dienste verantwortlich ist. Der Kernel ist jedoch keine unabhängige Einheit und benötigt ein Dateisystem, um verschiedene Daten und Programme zu speichern und darauf zuzugreifen. Ein Dateisystem ist eine Methode zum Organisieren und Verwalten von Dateien. Es definiert den Namen, den Speicherort, die Attribute, Berechtigungen und andere Informationen der Datei. Unter Linux gibt es viele verschiedene Arten von Dateisystemen, wie z. B. ext4, xfs, btrfs usw., von denen jedes seine eigenen Eigenschaften und Vorteile hat. Unter allen Dateisystemen gibt es jedoch ein spezielles Dateisystem, das die Grundlage und den Kern des Linux-Systems bildet

Warum kann ich die Bat-Datei unter Windows 7 nicht ausführen? Warum kann ich die Bat-Datei unter Windows 7 nicht ausführen? Feb 19, 2024 pm 03:19 PM

Warum kann win7 keine Bat-Dateien ausführen? In letzter Zeit haben viele Benutzer, die das Betriebssystem Windows 7 verwenden, berichtet, dass sie keine .bat-Dateien ausführen können. Dies löste weitreichende Diskussionen und Verwirrung aus. Warum kann ein gut funktionierendes Betriebssystem keine einfache .bat-Datei ausführen? Zuerst müssen wir den Hintergrund der .bat-Datei verstehen. Eine .bat-Datei, auch Batchdatei genannt, ist eine reine Textdatei, die eine Reihe von Befehlen enthält, die vom Windows-Befehlsinterpreter (cmd.ex) verwendet werden können

So automatisieren Sie Aufgaben mit PowerShell So automatisieren Sie Aufgaben mit PowerShell Feb 20, 2024 pm 01:51 PM

Wenn Sie ein IT-Administrator oder Technologieexperte sind, müssen Sie sich der Bedeutung der Automatisierung bewusst sein. Insbesondere für Windows-Benutzer ist Microsoft PowerShell eines der besten Automatisierungstools. Microsoft bietet eine Vielzahl von Tools für Ihre Automatisierungsanforderungen, ohne dass Sie Anwendungen von Drittanbietern installieren müssen. In diesem Leitfaden erfahren Sie, wie Sie PowerShell zur Automatisierung von Aufgaben nutzen können. Was ist ein PowerShell-Skript? Wenn Sie Erfahrung mit PowerShell haben, haben Sie möglicherweise Befehle zum Konfigurieren Ihres Betriebssystems verwendet. Ein Skript ist eine Sammlung dieser Befehle in einer .ps1-Datei. .ps1-Dateien enthalten von PowerShell ausgeführte Skripte, z. B. grundlegende Get-Help

Windows PowerShell-Skript-Tutorial für Anfänger Windows PowerShell-Skript-Tutorial für Anfänger Mar 13, 2024 pm 10:55 PM

Wir haben dieses Windows PowerShell-Skript-Tutorial für Anfänger entwickelt, egal ob Sie ein Technikbegeisterter oder ein Profi sind, der seine Skriptfähigkeiten verbessern möchte. Wenn Sie keine Vorkenntnisse in PowerShell-Skripting haben, beginnt dieser Artikel mit den Grundlagen und ist auf Sie zugeschnitten. Wir helfen Ihnen, die Installationsschritte für eine PowerShell-Umgebung zu meistern und führen Sie durch die wichtigsten Konzepte und Funktionen von PowerShell-Skripten. Wenn Sie bereit sind, mehr über PowerShell-Skripting zu erfahren, begeben wir uns gemeinsam auf diese spannende Lernreise! Was ist WindowsPowerShell? PowerShell ist ein von Microsoft entwickeltes hybrides Befehlssystem

So öffnen Sie eine URL-Datei So öffnen Sie eine URL-Datei Mar 28, 2024 pm 06:27 PM

Zu den Methoden zum Verwenden von URL-Dateien zum Öffnen von Internetressourcen gehören: Doppelklick zum Öffnen mit einem Webbrowser. Öffnen Sie es mit einem Texteditor, kopieren Sie die Linkadresse und fügen Sie sie in die Adressleiste des Browsers ein. Verwenden Sie über die Befehlszeile den Befehl „start“ oder „open“, um den URL-Dateipfad anzugeben. Erstellen Sie eine Skriptdatei mit dem Befehl zum Öffnen der URL-Datei.

Zusammenfassung der Linux-Leistungsanalysetools Zusammenfassung der Linux-Leistungsanalysetools Feb 15, 2024 pm 03:57 PM

Aufgrund meines Interesses am Linux-Betriebssystem und meines Wunsches nach einfachen Kenntnissen habe ich diesen Artikel zusammengestellt. Es dient der Überprüfung des Grundwissens und deckt alle Aspekte des Systems ab. Die Werkzeuge in der Dokumentation können ohne umfassende Kenntnisse über Computersysteme, Netzwerke und Betriebssysteme nicht vollständig beherrscht werden. Darüber hinaus handelt es sich bei der Analyse und Optimierung der Systemleistung um eine langfristige Serie. Bei diesem Dokument handelt es sich hauptsächlich um einen umfassenden Artikel, der aus dem aktualisierten Blogbeitrag zum Linux-Performance-Tuning-Tool von Brendan Gregg, einem Linux-Guru und leitenden Performance-Architekten von Netflix, und einer Sammlung von Artikeln zur Linux-Systemleistungsoptimierung zusammengestellt wurde. Es werden hauptsächlich die Prinzipien und Leistungstesttools erläutert, die im Zusammenhang mit dem Blogbeitrag verwendet werden. Hintergrundwissen: Bei der Analyse von Leistungsproblemen

See all articles