Pre každý web je dôležité správne nastaviť HTTP hlavičky. O hlavičkách bolo napísaných mnoho článkov. Tu sme zhromaždili nadobudnuté skúsenosti a dokumentáciu RFC. Niektoré hlavičky sú povinné, niektoré zastarané, iné môžu spôsobiť zmätok a rozpory. Vytvorili sme meraciu službu pre . Na rozdiel od mnohých iných služieb, ktoré len ukazujú hlavičky, táto služba umožňuje:
- nastaviť hodnotu štandardných hlavičiek;
- pridať vlastné vlastné hlavičky;
- uviesť verziu HTTP protokolu: 1.0, 1.1, 2 (kontroluje, či je podporovaný HTTP/2);
- uviesť metódu žiadosti, čas čakania a údaje postdata na odoslanie na server;
- takisto meracia služba kontroluje správnosť odpovedí na požiadavky If-Modified-Since, If-None-Match, ak v odpovedi servera existuje Last-Modified alebo ETag.
Netvrdíme, že máme pravdu v poslednej inštancii. Pre jednotlivý obsah a pre rôzne projekty môžu existovať odchýlky. Ale táto služba určite naznačí, na čo sa oplatí zamerať, možno bude pre vás užitočné upraviť vaše hlavičky. Nižšie je zoznam toho, na čo sa pri kontrole zameriava služba. Prečo tak, čítajte .
Povinné hlavičky
- Date
- Content-Type s uvedením charset pre textový obsah je odporúčané utf-8
- Content-Encoding kompresia pre textový obsah
Zastaralé a nepotrebné hlavičky
- Server s podrobnou verziou webového servera
- X-Power-By
- X_ASPNET-Version
- Expires
- Pragma
- P3P
- Via
- X-UA-Compatible
Odporúčané hlavičky pre bezpečnosť
- X-Content-Type-Options
- X-XSS-Protection
- Strict-Transport-Security
- Referrer-Policy
- Feature-Policy
- Content-Security-Policy alebo Content-Security-Policy-Report-Only na zakázanie vložených skriptov a štýlov.
Hlavičky pre cachovanie
Sú povinné pre statický obsah s dlhým obdobím cachovania a extrémne žiaduce pre dynamický obsah s krátkym obdobím cachovania.
- Last-Modified
- ETag
- Cache-Control
- Vary
- Je dôležité, aby server správne odpovedal na hlavičky: If-Modified-Since a If-None-Match
HTTP/2
V súčasnosti by mal server podporovať HTTP/2. Služba predvolene kontroluje fungovanie servera podľa HTTP/2. Ak váš server nepodporuje HTTP/2, vyberte HTTP/1.1.
Zdroj: habr.com
