Portál AbcLinuxu, 6. května 2025 06:36

Dotaz: Nastavení HTTP hlaviček na Apache serveru

1.5.2018 20:03 Milan | skóre: 1
Nastavení HTTP hlaviček na Apache serveru
Přečteno: 309×
Odpovědět | Admin
Zdravím. Přes GPRS modul odesílám data z Arduina na virtuální Linuxový server (Debian od společnosti Forpsi). V podstatě je to jen jednoduché odeslání několika bajtů pomocí AT příkazů do PHP skriptu, který je vyhodnotí a uloží do databáze. Soubor s PHP kódem vypadá zjednodušeně takhle:
<[otazník]php
// převzetí POST dat
// .....
// nějaké testy přijatých dat s výsledkem $uspech = true (nebo false)
// .....
// když je $uspech, tak navazání spojení s MySQLi databází
//     .....
//     a uložení přijatých dat do databáze
//     .....

// Na závěr už jen jednoduchý echo výstup "OK" nebo "ERR"
if ($uspech)
  {    
    echo "OK" ;
  }
else
  {
    echo "ERR";
  }
?>

Jak je vidět, výsledkem skriptu je jen jednoduchá stránka s nápisem "OK" nebo "ERR". Nic víc - žádná grafika, žádné HTML tagy.

Všechno mi funguje, ale všimnul jsem si, že server odpovídá zpátky do GPRS modulu ještě strašně dlouhou HTTP hlavičkou.

Kvůli dvěma až třem užitečným znakům (které by se daly zkrátit na pouhý 1 znak - např "1" pro úspěch, nebo "0" pro neúspěch) se zpátky odesílá ještě dalších asi 200 neužitečných znaků, což 100x prodražuje mobilní spojení:

+CIPRCV:208,HTTP/1.1 200 OK
Date: Tue, 01 May 2018 17:30:21 GMT
Server: Apache/2.4.10 (Debian)
Content-Length: 3
Keep-Alive: timeout=120, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

 OK
Chci se zeptat, jestli je možné v nějakém nastavení Apache serveru tuhle "neužitečnou" hlavičku nějak zkrátit, nebo dokonce vůbec neodesílat?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.5.2018 21:08 Milan | skóre: 1
Rozbalit Rozbalit vše Re: Nastavení HTTP hlaviček na Apache serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
... tak pár bajtů jsem ušetřil nastavením
  ServerTokens Prod
  ServerSignature Off
v souboru
/etc/apache2/conf-available/security.conf
Ve výsledku to trochu zkrátí jméno serveru:
+CIPRCV:192,HTTP/1.1 200 OK
Date: Tue, 01 May 2018 19:01:17 GMT
Server: Apache
Content-Length: 3
Keep-Alive: timeout=120, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

 OK
Ale pořád je ta hlavička strašně dlouhá.
1.5.2018 21:34 NN
Rozbalit Rozbalit vše Re: Nastavení HTTP hlaviček na Apache serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak pouzij misto HTTP protokolu socket server.
1.5.2018 21:47 Milan | skóre: 1
Rozbalit Rozbalit vše Re: Nastavení HTTP hlaviček na Apache serveru
Se socketama jsem nikdy nedělal. Budu to muset nastudovat.

Díky za nasměrování.

1.5.2018 22:09 NN
Rozbalit Rozbalit vše Re: Nastavení HTTP hlaviček na Apache serveru
V podstate otevres holou TCP session, posles a prijmes surova data a spojeni. Pripadne nejaky "lehci" protokol jako MQTT.
Josef Kufner avatar 2.5.2018 00:20 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení HTTP hlaviček na Apache serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Můžeš ušetřit dalších par bytů vynecháním těla odpovědi a použitím stavového HTTP kódu namísto toho. Pak také můžeš smrsknout hlavičku Content-Type.

Na obojí použij funkci header() v PHP.
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.