БСрвис ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² сСрвСра

Для любого сайта Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. На Ρ‚Π΅ΠΌΡƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π±Ρ‹Π»ΠΎ написано ΠΌΠ½ΠΎΠ³ΠΎ статСй. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠ»ΠΈ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ RFC. КакиС-Ρ‚ΠΎ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ ΠΈ противорСчия. ΠœΡ‹ сдСлали ΠΏΡƒΠ·ΠΎΠΌΠ΅Ρ€ΠΊΡƒ для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π²Π΅Π±-сСрвСра. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, Π΄Π°Π½Π½Ρ‹ΠΉ сСрвис позволяСт:

  1. Π·Π°Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²;
  2. Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ свои ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ;
  3. ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ HTTP-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°: 1.0, 1.1, 2 (провСряСт поддСрТиваСтся Π»ΠΈ HTTP/2);
  4. ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ запроса, врСмя оТидания ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ postdata для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° сСрвСр;
  5. Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡƒΠ·ΠΎΠΌΠ΅Ρ€ΠΊΠ° провСряСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° запросы 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ