Ubuntu 16.04, Apache 2.4.18 a HTTP Error 400

Po zprovoznění HamQTH na novém serveru se mi začaly v logu objevovat chyby 400 Bad Request při požadavcích na API. CQRLOG také používá HamQTH, ale problém se mi neobjevil. Docela mě to potrápilo. Nakonec se mi povedlo se strýčka Google správně zeptat a najít řešení.

Problém je v tom, že autoři SW při tvorbě requestu pletli dohromady znaky konce řádků. Podle RFC 2616 musí být u HTTP/1.1 použit jako konec řádku CRLF a ne pouze LF. Předtím byl na HamQTH nějaký starý Apache (Ubuntu 12.04) a nevadilo to. Od verze >= 2.4.25 už ano.

Do apache2.conf jsem přidal HttpProtocolOptions Unsafe a restartoval Apache. Snad to pomůže do doby, než si autoři SW chybu opraví.

Zde je původní text k chybě nalezený Googlem. Pěkně je vše popsáno v dokumentaci k volbě HttpProtocolOptions.

Chybu jsem hledal nejprve u sebe, procházel zdrojáky a přemýšlel, co je špatně, když mi vše funguje. Třeba někomu mé zjištění pomůže.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *