Zum Inhalt springen

Rack (Webserver-Interface)

aus Wikipedia, der freien Enzyklopädie
{{#if: Rack: ein Ruby-Webserver-Interface | Rack: ein Ruby-Webserver-Interface | {{#invoke:WLink|getArticleBase}} }}

{{#if: Logo |

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Logo |
 {{#if: {{#invoke:Wikidata|claim|P154}} | 
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
 }}

}}{{#if: |

{{#if: |
}}|

}}

Basisdaten

{{#if: |

Hauptentwickler
 {{#if: {{#invoke:Wikidata|claim|P126}} | 
Maintainer claim|P126|parameter=link|references=ja|list=, }}
 }}

}}{{#if: Leah Neukirchen; James Tucker, Michael Fellinger, Konstantin Haase, Aaron Patterson |

Entwickler
 {{#if: {{#invoke:Wikidata|claim|P178}} | 
Entwickler claim|P178|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

Erscheinungsjahr
 {{#if: {{#invoke:Wikidata|claim|P577}} | 
Erscheinungsjahr claim|P577|references=ja|list=, }} |
   {{#if: {{#invoke:Wikidata|claim|P571}} | 
Erscheinungsjahr claim|P571|references=ja|list=, }}
   }}
 }}

}}{{#ifeq: 1.5.2 | KEINE_ANGABE || {{#if: 1.5.2 |

Aktuelle Version
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format 2013-02-07 | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} | 
Aktuelle Version claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}}

}}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: |

Aktuelle Vorabversion
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} | 
Aktuelle Vorabversion claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}}

}}{{#if: |

Ausführungsumgebung
 {{#if: plattformunabhängig | 
Betriebssystem
   {{#if: {{#invoke:Wikidata|claim|P306}} | 
Betriebssystem claim|P306|parameter=link|references=ja|list=, }}
   }}
 }}

}}{{#if: Ruby |

Programmier­sprache Ruby |
 {{#if: {{#invoke:Wikidata|claim|P277}} | 
Programmier­sprache claim|P277|parameter=link|references=ja|list=, }}
 }}

}}{{#if: Middleware |

Kategorie Middleware

}}{{#if: MIT License |

Lizenz MIT License |
 {{#if: {{#invoke:Wikidata|claim|P275}} | 
Lizenz claim|P275|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

deutschsprachig faculty|}} | ja | nein }}

}}{{#if: |

Sonstiges {{{Sonstiges}}}Vorlage:Infobox Software/Wartung/Sonstiges

}}{{#if: rack.github.io |

rack.github.io |
 {{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} | 
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
 }}

}}{{#if: |

Dateien [[c:Category:Created with {{{Dateien}}}|{{{Dateien}}}]]

}}

Rack stellt eine minimale, modulare und adaptive Schnittstelle für die Entwicklung von Webapplikationen in der Programmiersprache Ruby bereit. Durch das Wrappen von HTTP-Requests und HTTP-Responses, das auf möglichst einfache Weise erfolgt, vereinheitlicht es die Schnittstelle für Webserver, Webframeworks und die Software dazwischen, die Middleware, und destilliert diese Zugriffe zu einem einzigen Methodenaufruf.

Rack wird in fast allen Webframeworks und Weblibraries in der Ruby-Welt benutzt, z. B. von Ruby On Rails und Sinatra. Es ist als Ruby Gem verfügbar.<ref>https://rubygems.org/gems/rack/</ref>

Rack stellt in der Ruby-Welt einen De-facto-Standard der Rack-Kompatibilität ({{#invoke:Vorlage:lang|full|CODE=en|SCRIPTING=Latn|SERVICE=englisch}}) dar<ref>rubyinside.com</ref> und hat bereits ein Framework in der JavaScript-Welt (jackjs)<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20141217142806

      | {{#ifeq: 20141217142806 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: jackjs.org | {{#invoke:WLink|getEscapedTitle|jackjs.org}} | {{#invoke:Webarchiv|getdomain|http://jackjs.org/}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20141217142806}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: jackjs.org | {{#invoke:WLink|getEscapedTitle|jackjs.org}} | {{#invoke:Webarchiv|getdomain|http://jackjs.org/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2018-12-11 11:21:47 InternetArchiveBot | 2018-12-11 11:21:47 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20141217142806}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: jackjs.org | {{#invoke:WLink|getEscapedTitle|jackjs.org}} | {{#invoke:Webarchiv|getdomain|http://jackjs.org/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2018-12-11 11:21:47 InternetArchiveBot | 2018-12-11 11:21:47 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: jackjs.org | {{#invoke:WLink|getEscapedTitle|jackjs.org}} | {{#invoke:Webarchiv|getdomain|http://jackjs.org/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2018-12-11 11:21:47 InternetArchiveBot | 2018-12-11 11:21:47 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: jackjs.org | {{#invoke:WLink|getEscapedTitle|jackjs.org}} | {{#invoke:Webarchiv|getdomain|http://jackjs.org/}} }} (Memento{{#if: {{#if: 2018-12-11 11:21:47 InternetArchiveBot | 2018-12-11 11:21:47 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: jackjs.org | {{#invoke:WLink|getEscapedTitle|jackjs.org}} | {{#invoke:Webarchiv|getdomain|http://jackjs.org/}} }}  
                 }}}}}}}}{{#if:2018-12-11 11:21:47 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20141217142806|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://jackjs.org/}}
    || {{#if:  || }}
  }}{{#if: jackjs.org
    | {{#if: {{#invoke:WLink|isBracketedLink|jackjs.org}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://jackjs.org/%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://jackjs.org/%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://jackjs.org/ }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref> und eines in der Perl-Welt (Plack) inspiriert.

Beispielapplikation

Eine Rack-kompatible "Hello World"-Applikation in Ruby syntax: <syntaxhighlight lang="ruby"> require 'rack'

app = Proc.new do |env|

 body = "Hello, World!"
 ['200', {'Content-Type' => 'text/html', 'Content-Length' => body.length.to_s}, [body]]

end

Rack::Handler::WEBrick.run app </syntaxhighlight>

Siehe auch

Weblinks

Einzelnachweise

<references />

{{#if:||{{#ifeq:0|10|{{#ifeq:Rack (Webserver-Interface)|Vorlage:Erweiterte Navigationsleiste||Vorlage:Templatetransclusioncheck Vorlage:Dokumentation/ruler}}}}}}<templatestyles src="Erweiterte Navigationsleiste/styles legacy.css" />Vorlage:Klappleiste/Anfang{{#if: |

{{{Untertitel}}}

}}{{#if: |

{{{Untertitel2}}}

}}

{{#if: | {{#if: C NSAPI | C ASAPI | C ISAPI | Jakarta Servlet | ASP.NET | Python WSGI | Ruby Rack | JavaScript JSGI | PSGI | Lua WSAPI  | {{#if:APIs||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 2|1|2}}px solid #FFF;border-bottom: {{#if: Apache-Module|2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|APIs }} {{#if: mod_jk | mod_lisp | mod_parrot | mod_perl | mod_php | mod_python | mod_wsgi | mod_ruby | Phusion Passenger  | {{#if:Apache-Module||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 3|1|2}}px solid #FFF;border-bottom: {{#if: Web APIs|2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|Apache-Module }} {{#if: WSDL | XML-RPC | SOAP | REST  | {{#if:Web APIs||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 4|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|Web APIs }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 5|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 6|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 7|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 8|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 9|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 10|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 11|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 12|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 13|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 14|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 15|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 16|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 17|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 18|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 19|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 20|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 21|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 22|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 23|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 24|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 25|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 26|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 27|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 28|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 29|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 30|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 31|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }} {{#if: | {{#if:||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 32|1|2}}px solid #FFF;border-bottom: {{#if: |2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|' }}
class="erw-nav-bild" style="width:0; padding:0 2px 0 0; border:1px solid transparent; " rowspan="{{#expr: 0{{#if:CGI | SCGI | FastCGI | AJP|+1}}{{#if:C NSAPI | C ASAPI | C ISAPI | Jakarta Servlet | ASP.NET | Python WSGI | Ruby Rack | JavaScript JSGI | PSGI | Lua WSAPI |+1}}{{#if:mod_jk | mod_lisp | mod_parrot | mod_perl | mod_php | mod_python | mod_wsgi | mod_ruby | Phusion Passenger |+1}}{{#if:WSDL | XML-RPC | SOAP | REST |+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}}}" |

}} {{#if: CGI | SCGI | FastCGI | AJP | {{#if:Protokolle||class="erw-nav-gruppe" style="white-space: nowrap;text-align: right;{{#if:|background:#;|{{#switch:|eigen=background:#{{#if:||E6E6FF}};|einheitlich=background:;}}}}border: 1px solid transparent;border-top: {{#if: 1|1|2}}px solid #FFF;border-bottom: {{#if: APIs|2|1}}px solid #FFF;padding: 0 1em;{{#if:|width:{{{Kopfbreite}}};|}}"|Protokolle }}

{{#if:Protokolle colspan="2"}} class="hlist" style="text-align: {{#if:Protokolle|left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

CGI | SCGI | FastCGI | AJP }} {{#if: |

class="erw-nav-bild" style="width:0; padding:0 2px 0 0; border:1px solid transparent; " rowspan="{{#expr: 0{{#if:CGI | SCGI | FastCGI | AJP|+1}}{{#if:C NSAPI | C ASAPI | C ISAPI | Jakarta Servlet | ASP.NET | Python WSGI | Ruby Rack | JavaScript JSGI | PSGI | Lua WSAPI |+1}}{{#if:mod_jk | mod_lisp | mod_parrot | mod_perl | mod_php | mod_python | mod_wsgi | mod_ruby | Phusion Passenger |+1}}{{#if:WSDL | XML-RPC | SOAP | REST |+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}}}" |
{{{BILD}}}

}}{{#if: |

class="erw-nav-bild" style="width:0; padding:0 2px 0 0; border:1px solid transparent; " rowspan="{{#expr: 0{{#if:CGI | SCGI | FastCGI | AJP|+1}}{{#if:C NSAPI | C ASAPI | C ISAPI | Jakarta Servlet | ASP.NET | Python WSGI | Ruby Rack | JavaScript JSGI | PSGI | Lua WSAPI |+1}}{{#if:mod_jk | mod_lisp | mod_parrot | mod_perl | mod_php | mod_python | mod_wsgi | mod_ruby | Phusion Passenger |+1}}{{#if:WSDL | XML-RPC | SOAP | REST |+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}}}" |

}}

{{#if:APIs colspan="2"}} class="hlist" style="text-align: {{#if:APIs|left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

C NSAPI | C ASAPI | C ISAPI | Jakarta Servlet | ASP.NET | Python WSGI | Ruby Rack | JavaScript JSGI | PSGI | Lua WSAPI  }}

{{#if:Apache-Module colspan="2"}} class="hlist" style="text-align: {{#if:Apache-Module|left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

mod_jk | mod_lisp | mod_parrot | mod_perl | mod_php | mod_python | mod_wsgi | mod_ruby | Phusion Passenger  }}

{{#if:Web APIs left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

WSDL | XML-RPC | SOAP | REST  }}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: left|center}};border-left: 2px solid #fdfdfd;width: 100%;margin: .4em 0;border-color: #fdfdfd;padding: {{#if:|0|0 .25em}};"|

}}

{{#if: |

{{{Weiteres}}}

}}{{#if: |

{{{Weiteres2}}}

}}{{#if: |

{{{Anmerkungen}}}

}}Vorlage:Klappleiste/Ende