# HTML Serverstatus anfragen?



## gixnetwork (13. November 2019)

Ist es möglich (Egal ob Text oder Bild) einen Server mit Domain, zu sehen ob dieser Offline ist oder nicht?

Server 1 Domain1.de mit 1MB Webspace OHNE php.

Server 2 Domain2.de nicht immer Online.

Auf Domain1.de/index.HTML möchte ich sehen ob Domain2.de Online ist oder nicht.
Dofferweise gibts keine Möglichkeit das Server 1 PHP bekommen kann. 

Mit einem Link zu Domain2.de würde es Funktionieren wenn ich einfach eine eigene Notfound Seite 404 Gestalte... Ala... Offline Text info als Fehlerseite 404.

Oder...

Per Iframe ein Grünnes Bild einblenden welches auf Server2 Verlinkt ist, wenn Server2 aber Offline ist kommt ein Fehler... Logischerweise

Hatt eventuell jemand anderes ne kreative Idee?

Danke, Freundliche Grüsse Manuel


----------



## ikosaeder (13. November 2019)

Kommt darauf an, was für Zugriff du auf den Server hast. Man könnte sich einen Heartbeat vorstellen, der per cron Job an S2 gesendet wird.

Oder mit php von Server2 aus:

```
<?php
http_response($url,'400'); // returns true if http status is 400
?>
```
Dieser Code stammt von dieser Seite:
https://www.php.net/manual/de/book.curl.php


----------



## gixnetwork (13. November 2019)

Cron Job finde ich nicht optimal..

Eventuell mit Ajax

https://de.m.wikibooks.org/wiki/Websiteentwicklung:_AJAX:_Erstes_Programm


----------



## ikosaeder (14. November 2019)

Ganz egal wie du das machst, du brauchst einen Taktgeber, der die Aktion wiederholt aufruft, entweder auf S1 oder auf S2. Ansonsten bekommst du den aktuellen Status nur, wenn du deine Seite neu lädst. Auf S2 kannst du wie schon gesagt mit 
	
	
	



```
http_response
```
 den Status von S1 abfragen. 200 wäre alles ok 404 not found usw.
mit 
	
	
	



```
sleep ( 60)
```
 in einem while loop kannst du einen Taktgeber realisieren.

```
<?php
$url="https://dein.server1.de"
$imgOk="gruen.jpg"
$imgFault="rot.jpg"
while(true)
{
    if(http_response($url,'200'))
   {
        echo '<img id="S1Status" src="' . $imgOk .'">';
    }
   else
   {
        echo '<img id="S1Status" src="' . $imgFault .'">';
    }
    sleep(60);
}
?>
```


----------



## gixnetwork (14. November 2019)

Ja verstehe ich... Aber nur Server 2 kann Php...
Auf dem Server1 versuche ich ein Formular mit Automatischem Post an server 2 zu senden..
Ach ne das geht ja auch nicht...

Binn noch auf Arbeit... Versuche es am Nachmittag..

Danke für die Tips... Das mit dem Taktgeber Verstehe Ich. 

Mit JSON JS eine Datei auslesen.. und bei Fehler Offline anzeigen währe glaube ich möglch..


----------



## ikosaeder (14. November 2019)

Was ich gepostet habe, soll auf Server2 laufen. Genauer in einer Seite, die man aufruft und auf der im Minutentakt der Status aktualisiert wird.


----------



## ComFreek (14. November 2019)

Das geht auch bestimmt nur mit HTML und CSS auf Server1 irgendwie. Siehe etwa auch kkuchta/css-only-chat  Aber wenn du schon PHP hast, nutz es auch!


----------



## gixnetwork (14. November 2019)

ikosaeder hat gesagt.:


> Was ich gepostet habe, soll auf Server2 laufen. Genauer in einer Seite, die man aufruft und auf der im Minutentakt der Status aktualisiert wird.


Ja okey, aber wen server 2 offline ist geht das ja nicht... Verstehsch mein Dilemma... Der andera Ansatz mit http- response ist super...
Weiss ich aber noch nicht genau wie ich das umsetze... Ein Reload ist nicht nötig...
Www.domain1.de öffnen.. dann steht Offline komm ein anderes mal wieder.. wenn Online steht ein link zur www.domain2.de.... eventuell gleich ne Weiterleitung...


----------



## ikosaeder (14. November 2019)

Ich glaube ich habe dein Problem falsch verstanden. Ich dachte, du willst auf Server2 eine Seite hosten, die anzeigt ob S1 da ist oder nicht. 
Aber du willst auf S1 eine Seite hosten die anzeigt ob S2 da ist. 
Neue Idee. speichere auf S2 eine Javascript datei, die den src einer Imagedatei ändert. Js wird im Browser bearbeitet und der Bildwechsel findet statt, wenn S2 da ist.


----------



## ikosaeder (14. November 2019)

Einfacher geht es sogar wie ComFreek sagte: Mach einen div mit Css rot und lade von s2 ein Stylesheet nach, das den div grün färbt.


----------



## gixnetwork (14. November 2019)

Ja! Dass ist die Idee! 
Sobald ich Zeit habe werde ich die Lösung Posten.
Besten Dank!
Es kann so simpel sein....


----------



## gixnetwork (15. November 2019)

online.css


```
*

.offline {
    display: none;
      
}


.online {
    display: inline;
    
}
```

offline.css


```
* {
    margin: 0px;
    padding: 0px;
    border: none;
}

html {
    background-color: #fff;
    color: #111;
    font-family: Verdana, Helvetica, Arial, sans-serif;
}


.online {
    display: none;
    
}
```

index.html


```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Willkommen</title>
        <link type="text/css" rel="stylesheet" media="screen" href="offline.css" />
        <link type="text/css" rel="stylesheet" media="screen" href="http://server.de/online.css" />
    </head>
    <body>
    
<div class="offline">
              
<p>Offline</p>
    
</div>   
    
<div class="online">
              
<p>Online</p>
    
</div>

    </body>
</html>
```


Funktioniert, Besten Dank an Alle


----------



## ComFreek (15. November 2019)

Ich hoffe du stößt damit nicht auf Browsercache Probleme irgendwann. Was, wenn der zweite Server tatsächlich offline ist, aber dein Browser die CSS-Datei aus dem Cache lädt?


----------



## ikosaeder (15. November 2019)

Das sollte man auf jeden Fall checken. 
https://css-tricks.com/strategies-for-cache-busting-css/


----------

