http2 explained
  • English
    • Background
    • HTTP Today
    • Things done to overcome latency pains
    • Updating HTTP
    • http2 concepts
    • The http2 protocol
    • Extensions
    • An http2 world
    • http2 in Firefox
    • http2 in Chromium
    • http2 in curl
    • After http2
    • Further reading
    • Thanks
  • Español
    • Antecedentes
    • HTTP hoy
    • Estrategias para evitar los dolores de latencia
    • Actualizando HTTP
    • Conceptos de http2
    • El protocolo http2
    • Extensiones
    • Un mundo http2
    • http2 en Firefox
    • http2 en Chromium
    • http2 en curl
    • Después de http2
    • Otras lecturas
    • Agradecimientos
  • فارسی
    • مقدمه و معرفی
    • پیش‌زمینه
    • HTTP امروز
    • کارهایی که برای غلبه بر تأخیرها انجام شده
    • آپدیت‌کردن HTTP
    • مفاهیم http2
    • پرتکل http2
    • افزونه‌ها
    • دنیایی با http2
    • http2 در فایرفاکس
    • http2 در کرومیوم
    • http2 در curl
    • بعد از http2
    • خواندن بیشتر
    • تقدیر و تشکر
    • واژه‌نامه
  • Français
    • Avant-propos
    • HTTP aujourd'hui
    • Rustines pour s'accommoder de la latence
    • Mettre à jour HTTP
    • Concepts http2
    • Le protocole http2
    • Extensions
    • Le monde http2
    • http2 et Firefox
    • http2 et Chromium
    • http2 et curl
    • Après http2
    • Lecture complémentaire
    • Remerciements
  • Italiano
    • Background
    • HTTP oggi
    • Tecniche applicate al contrasto della latenza
    • Aggiornare HTTP
    • http2 a grandi linee
    • Il protocollo http2
    • Estensioni
    • Un mondo di http2
    • http2 in Firefox
    • http2 in Chromium
    • http2 in curl
    • Dopo http2
    • Altre letture
    • Riconoscimenti, Ringraziamenti
  • 日本語
    • 背景
    • HTTPの現状確認
    • レイテンシーの闇を克服せよ
    • もうやめて、HTTP 1.1のライフはゼロよ
    • http2のコンセプト
    • http2プロトコル
    • http2は拡張の夢を見る
    • http2化される世界
    • Firefoxにおけるhttp2
    • Chromiumにおけるhttp2
    • curlにおけるhttp2
    • http2の次にくるもの
    • 参考文献
    • 謝辞
  • 한국어
    • 배경
    • HTTP 현재
    • 대기시간의 고통을 극복하기 위해 한일
    • HTTP 업데이팅
    • http2 컨셉
    • http2 프로토콜 (번역되지 않은)
    • 연장선 (번역되지 않은)
    • http2 세계 (번역되지 않은)
    • Firefox에서의 http2
    • Chromium에서의 http2
    • curl에서의 http2
    • HTTP2 다음에 오는 것
    • 참조
    • 감사의 말
  • Português
    • Antecedentes
    • HTTP Hoje
    • Estratégias para evitar as dores da latência
    • Atualizando HTTP
    • Conceitos de http2
    • O protocolo http2
    • Extensões
    • Um mundo http2
    • http2 e Firefox
    • http2 e Chromium
    • http2 e curl
    • Após o http2
    • Outras leituras
    • Agradecimentos
  • русском
    • История
    • HTTP сегодня
    • Шаги, предпринятые для преодоления задержки
    • Обновление HTTP
    • Концепция http2
    • Протокол http2
    • Расширения
    • Мир http2
    • http2 в Firefox
    • http2 в Chromium
    • http2 в curl
    • После http2
    • Дальнейшее чтение
    • Благодарности
  • Svenska
    • Bakgrund
    • HTTP idag
    • Tricks för att komma över fördröjningssmärtor
    • Uppdatera HTTP
    • http2-koncept
    • http2-protokollet
    • Utökningar
    • En http2-värld
    • http2 i Firefox
    • http2 i Chromium
    • http2 i curl
    • Efter http2
    • Fortsatt läsning
    • Tack
  • Türkçe
    • Arkaplan
    • HTTP'nin Bugünü
    • Gecikmelerin üstesinden gelmek için yapılanlar
    • HTTP'nin güncellenmesi
    • http2 konseptleri
    • http2 protokolü
    • Uzantılar
    • http2 dünyası
    • Firefox'da http2
    • Chromium'da http2
    • curl'de http2
    • http2 sonrası
    • Daha fazla bilgi için
    • Teşekkürler
  • 中文
    • 背景
    • HTTP的现状
    • 那些年,克服延迟之道
    • 升级HTTP
    • http2的观念
    • http2协议
    • 扩展
    • http2的世界
    • Firefox里的http2
    • Chromium里的http2
    • Curl里的http2
    • 后http2时代
    • 扩展阅读
    • 致谢
Powered by GitBook
On this page
  • ۷.۱. سرویس‌های جایگزین
  • ۷.۱.۱. TLS فرصت‌گرا!
  • ۷.۲. بلاک‌شده

Was this helpful?

Export as PDF
  1. فارسی

افزونه‌ها

Previousپرتکل http2Nextدنیایی با http2

Last updated 5 years ago

Was this helpful?

پرتکل http2 فرض می‌کند که گیرنده باید همه‌ی فریم‌های ناشناخته را بخواند و نادیده بگیرد (فریم‌هایی که نوع ناشناخته‌ای دارند). دو طرف می‌توانند نوع فریم‌های جدیدی را تعیین کنند، اما این فریم‌ها نمی‌توانند وضعیت خود را تغییر دهند و جریان آن‌ها کنترل نمی‌شوند.

موضوع این که آیا http2 اجازه‌ی افزونه‌ها را بدهد یا نه، در طول توسعه‌ی پرتکل سر آن بحث‌های زیادی انجام گرفت که توسعه‌دهندگان نظر خود را مرتبا عوض می‌کردند. بعد از پیش‌نویس ۱۲، در نهایت افزونه‌ها در http2 مجاز شدند.

افزونه‌ها جزئی از خود پرتکل نیستند و مستندات آن‌ها در خارج از هسته‌ی استانداردهای پرتکل قرار دارند. قبلا دو نوع فریم در پرتکل به عنوان افزونه‌ها تعریف شده. آن‌ها را اینجا به دلیل محبوبیت و این‌که قبلا جزئی از پرتکل بودند، توضیح می‌دهم.

۷.۱. سرویس‌های جایگزین

با ورود http2، کانکشن‌های TCP می‌توانند به هر دلیلی، حجیم‌تر شوند و مدت برقراری آن‌ها نسبت به کانکشن‌های HTTP 1.x افزایش یابند. یک کلاینت باید بتواند این مشخصه‌ها را در یک کانکشن افزایش دهد، و این کانکشن می‌تواند برای مدت نسبتا زیادی برقرار باشد.

این موضوع روی چگونگی کار Load Balancerهای HTTP تأثیر می‌گذارد و ممکن است موجب شرایطی شود که یک سایت به کلاینت پیشنهاد دهد که به یک سرور دیگر متصل شود. ممکن است دلیل این کار، افزایش سرعت و کارایی باشد، یا سرور تحت تعمیر باشد و سرور دیگری در‌دسترس باشد و غیره.

سرور می‌تواند (یا فریم ALTSVC) را به کلاینت بفرستد که سرویس دیگری موجود است: یک مسیر دیگر به همان محتوا، در یک سرور دیگر، میزبان دیگر و پورت دیگر.

کلاینت باید به آن سرویس دیگر به طور ناهمگام وصل شود و فقط در صورتی از جایگزین استفاده کند که کانکشن جدید موفق باشد.

۷.۱.۱. TLS فرصت‌گرا!

هدر Alt-Svc به سرور اجازه می‌دهد که محتوا را بر پرتکل http:// ارائه دهد تا به کلاینت اطلاع دهد که همان محتوا روی یک کانکشن امن TLS هم دردسترس هستند.

این قابلیت کمی شک‌بر‌انگیز است. این نوع کانکشن می‌تواند TLS احرازنشده انجام دهد و دیگر نتواند امن معرفی شود، هیچ علامت قفلی در UI نشان داده می‌شود و در واقع هیچ راهی وجود ندارد که به کاربر بگوییم که این همان HTTP ساده و قدیمی است، ولی هم‌چنان این TLS فرصت‌گراست و بعضی از افراد شدیدا مخالف این مفهوم هستند.

۷.۲. بلاک‌شده

این نوع فریم وقتی ارسال می‌شود که یکی از طرفین کانکشن http2 داده‌ای را ارسال می‌کند، اما کنترل جریان اجازه‌ی ارسال را نمی‌دهد. ایده این است که اگر کلاینت یا سرور این فریم را دریافت کند، شما می‌دانید که یک جای کار مشکل دارد و یا سرعت انتقال کمتر است.

متن زیر قسمتی از پیش‌نویس ۱۲ است، قبل از این که این نوع فریم، افزونه شود.

«فریم BLOCKED در این پیش‌نویس گنجانده شده تا آزمایش‌ها را تسهیل کند. اگر نتایج آزمایش‌ها، بازخورد مثبتی نداشته باشد، ممکن است حذف شود.»

هدر Alt-Svc