Za svaku web stranicu važno je pravilno postaviti HTTP zaglavlja. O zaglavljima je napisano mnogo članaka. Ovdje smo saželi akumulirano iskustvo i RFC dokumentaciju. Neka zaglavlja su obavezna, neka zastarjela, a neka mogu unijeti zabunu i kontradikcije. Izradili smo alat za . Za razliku od mnogih drugih usluga koje samo prikazuju zaglavlja, ova usluga omogućuje:
- postavljanje vrijednosti izmjeničnih zaglavlja;
- dodavanje vlastitih proizvoljnih zaglavlja;
- navesti verziju HTTP protokola: 1.0, 1.1, 2 (provjerava podržava li se HTTP/2);
- navesti metodu zahtjeva, vrijeme čekanja i postdata za slanje poslužitelju;
- također alat provjerava ispravnost odgovora na zahtjeve If-Modified-Since, If-None-Match, ako u odgovoru poslužitelja postoje Last-Modified ili ETag.
Ne pretpostavljamo da ćemo dati konačnu istinu. Za određeni sadržaj i pojedinačne projekte, naravno, mogu postojati odstupanja. No ova usluga vas sigurno može usmjeriti na što biste trebali obratiti pažnju i možda će vam biti korisno urediti svoja zaglavlja. Ispod je popis onoga na što ova usluga za provjeru obraća pažnju. Zašto je to tako, pročitajte .
Obavezna zaglavlja
- Datum
- Content-Type s naznakom charset za tekstualni sadržaj, poželjno utf-8
- Content-Encoding kompresija za tekstualni sadržaj
Zastarjela i nepotrebna zaglavlja
- Server s detaljnom verzijom web poslužitelja
- X-Power-By
- X_ASPNET-Version
- Expires
- Pragma
- P3P
- Via
- X-UA-Compatible
Poželjna zaglavlja za sigurnost
- X-Content-Type-Options
- X-XSS-Protection
- Strict-Transport-Security
- Referrer-Policy
- Feature-Policy
- Content-Security-Policy ili Content-Security-Policy-Report-Only za zabranjivanje ugrađenih skripti i stilova.
Zaglavlja za keširanje
Obavezna su za statički sadržaj s dugim vremenom keširanja i izuzetno poželjna za dinamički sadržaj s kratkim vremenom keširanja.
- Last-Modified
- ETag
- Cache-Control
- Vary
- Važno je da poslužitelj ispravno odgovara na zaglavlja: If-Modified-Since i If-None-Match
HTTP/2
Sada poslužitelj mora podržavati HTTP/2. Po zadano, usluga provjerava rad poslužitelja po HTTP/2. Ako vaš poslužitelj ne podržava HTTP/2, odaberite HTTP/1.1.
Izvor: habr.com
