Apache JServ-Protokoll – Wikipedia

Das Apache JServ-Protokoll (AJP) ist ein Binärprotokoll, das eingehende Anforderungen von einem Webserver an einen Anwendungsserver weiterleiten kann, der sich hinter dem Webserver befindet. AJP ist ein sehr vertrauenswürdiges Protokoll und sollte niemals nicht vertrauenswürdigen Clients ausgesetzt werden, die damit Zugriff auf vertrauliche Informationen erhalten oder Code auf dem Anwendungsserver ausführen können.[1]

Es unterstützt auch einige Überwachungsfunktionen, da der Webserver den Anwendungsserver anpingen kann. Webimplementierer verwenden AJP normalerweise in einer Bereitstellung mit Lastenausgleich, bei der ein oder mehrere Front-End-Webserver Anforderungen an einen oder mehrere Anwendungsserver weiterleiten. Sitzungen werden mithilfe eines Routing-Mechanismus an den richtigen Anwendungsserver umgeleitet, wobei jede Anwendungsserverinstanz einen Namen erhält (a genannt) Route). In diesem Szenario fungiert der Webserver als Reverse-Proxy für den Anwendungsserver. Schließlich unterstützt AJP Anforderungsattribute, die, wenn sie mit umgebungsspezifischen Einstellungen im Reverse-Proxy gefüllt sind, eine sichere Kommunikation zwischen dem Reverse-Proxy und dem Anwendungsserver ermöglichen.[2][3]

AJP wird in Apache HTTP Server 1.x mit dem Plugin mod_jk und in Apache 2.x mit den bereitgestellten Modulen Proxy AJP, mod_proxy und Proxy Balancer zusammen ausgeführt. Es gibt Implementierungen für die noch nicht veröffentlichte lighttpd Version 1.5,[4]Nginx,[5]Grizzly 2.1,[6] und der Internet Information Server.[7]

Zu den Webcontainern, die AJP unterstützen, gehören Apache Tomcat, JBoss AS / WildFly und GlassFish.

Geschichte[edit]

Alexei Kosut entwickelte ursprünglich das Apache JServ-Protokoll im Juli 1997[8] Die Spezifikation der Version 1.0 wurde jedoch später am 29. Juli 1998 veröffentlicht.[9] Im selben Monat schrieb er auch die ersten Implementierungen mit den Releases der Apache JServ-Servlet-Engine 0.9 und der Apache mod_jserv 0.9a (veröffentlicht am 30. Juli 1997).[10]

Die Spezifikation wurde am 9. September 1998 auf Version 1.1 aktualisiert.[11] Ebenfalls 1998 wurde ein überarbeitetes Protokoll erstellt und in Spezifikationsversionen 2 veröffentlicht[12] und 2.1,[8] es wurde jedoch nie angenommen.

1999 spendete Sun Microsystems die Referenzimplementierung des JavaServer Web Development Kit (JSWDK; Codename Tomcat) an die Apache Software Foundation. Dies wurde Apache Tomcat Version 3.0, der Nachfolger von JSWDK 2.1, und entgleist die Weiterentwicklung der Apache JServ Servlet Engine und AJP zur Unterstützung der Java Servlet API Version 2.1.[13]

Die aktuelle Spezifikation bleibt bei Version 1.3,[14] Es gibt jedoch einen veröffentlichten Verlängerungsvorschlag[15] sowie einen archivierten experimentellen 1.4-Vorschlag.[16]

Siehe auch[edit]

Verweise[edit]

  1. ^ “Lesen / Einfügen von AJP-Dateien in Apache Tomcat (CVE-2020-1938) und Undertow (CVE-2020-1745)”. Red Hat Kundenportal. Abgerufen 1. März 2020.
  2. ^ “NativeSPAttributeAccess”. Shibboleth-Konsortium. Abgerufen 13. November 2017.
  3. ^ “Apache Module mod_proxy_ajp”. Apache HTTP Server-Projekt. Abgerufen 13. November 2017.
  4. ^ “Docs ModProxyCore – Lighttpd – leichte Labore”. redmine.lighttpd.net. Abgerufen 9. Oktober 2017.
  5. ^ Yao (姚伟斌), Weibin (6. Oktober 2017). “nginx_ajp_module: AJP-Protokoll-Proxy mit Nginx unterstützen”. Abgerufen 9. Oktober 2017 – über GitHub.
  6. ^ “AJP”. Grizzly 2.3 Benutzerhandbuch. java.net. Abgerufen 29.04.2013.
  7. ^ “BonCode Apache Tomcat AJP 1.3-Anschluss”. boncode.net. Abgerufen 9. Oktober 2017.
  8. ^ ein b Barbieri, Federico; Fumagalli, Pierpaolo; Kluft, Ian; Korthof, Ed; Mazzocchi, Stefano; Pool, Martin (30. Juni 1998). “Apache JServ Protocol Version 2.1”. Java Apache-Projekt. Archiviert von das Original am 04.08.2003.
  9. ^ Kosut, Alexei (29. Juli 1998). “Apache JServ Protocol Version 1.0”. Java Apache-Projekt. Archiviert von das Original am 15.04.2003.
  10. ^ “Änderungsverlauf – Apache JServ-Projekt”. Java Apache-Projekt. Archiviert von das Original am 16.04.2003.
  11. ^ Kosut, Alexei (9. September 1998). “Apache JServ Protocol Version 1.1”. Java Apache-Projekt. Archiviert von das Original am 04.08.2003.
  12. ^ Kluft, Ian; Korthof, Ed; Mazzocchi, Stefano (15. Februar 1998). “Apache JServ Protocol Version 2”. Java Apache-Projekt. Archiviert von das Original am 05.08.2003.
  13. ^ “Die Entstehungsgeschichte von Tomcat”. TechNotif. Abgerufen 2018-07-25.
  14. ^ “AJP-Protokollreferenz – AJPv13”. Apache tomcat. Abgerufen 2016-08-20.
  15. ^ “AJP-Protokollreferenz – AJPv13-Erweiterungsvorschlag”. Apache tomcat. Abgerufen 2016-08-20.
  16. ^ “AJPv14-Vorschlag”. Apache tomcat. Abgerufen 2019-05-06.

Externe Links[edit]