За все сайтовете е важно правилно да се настроят HTTP заглавията. Темата за заглавията е обхваната в много статии. Тук обобщаваме натрупания опит и документацията RFC. Някои заглавия са задължителни, други остарели, а трети могат да внасят объркване и противоречия. Изработихме инструмент за . За разлика от много други услуги, които просто показват заглавията, тази услуга позволява:
- да зададете стойности на стандартни заглавия;
- да добавите свои произволни заглавия;
- да укажете версията на HTTP протокола: 1.0, 1.1, 2 (проверява дали HTTP/2 се поддържа);
- да посочите метода на заявка, времето за изчакване и данните postdata за изпращане на сървъра;
- инструментът също така проверява коректността на отговорите на заявките If-Modified-Since, If-None-Match, ако в отговора на сървъра има Last-Modified или ETag.
Не претендираме за окончателност. За специфично съдържание и за отделни проекти, разбира се, могат да има отклонения. Но тази услуга със сигурност ще подскаже на какво да обърнете внимание, може да е полезно да редактирате своите заглавия. По-долу е списък на елементите, на които инструментът обръща внимание. Защо е така, четете .
Задължителни заглавия
- Date
- Content-Type с указание charset за текстово съдържание желательно utf-8
- Content-Encoding компресия за текстово съдържание
Остарели и ненужни заглавия
- Server с подробна версия на уеб сървъра
- X-Power-By
- X_ASPNET-Version
- Expires
- Pragma
- P3P
- Via
- X-UA-Compatible
Препоръчителни заглавия за безопасност
- X-Content-Type-Options
- X-XSS-Protection
- Strict-Transport-Security
- Referrer-Policy
- Feature-Policy
- Content-Security-Policy или Content-Security-Policy-Report-Only за забрана на вградени скриптове и стилове.
Заглавия за кеширане
Задължителни за статично съдържание с дълъг срок на кеширане и крайно желателни за динамично съдържание с кратък срок на кеширане.
- Last-Modified
- ETag
- Cache-Control
- Vary
- Важно е сървърът да отговаря коректно на заглавията: If-Modified-Since и If-None-Match
HTTP/2
Сега сървърът трябва да поддържа HTTP/2. По подразбиране услугата проверява работата на сървъра по HTTP/2. Ако вашият сървър не поддържа HTTP/2, изберете HTTP/1.1.
Източник: habr.com
