پروتکل انتقال ابرمتن نگارش ۳
پروتکل انتقال ابرمتن نگارش ۳ (به انگلیسی: HTTP/3)و یا بهطور خلاصه(H3)[۱] سومین نسخه اصلی پروتکل انتقال ابرمتن است که برای تبادل اطلاعات در شبکه وب جهانگستر مورد استفاده قرار میگیرد.[۲][۳]
استاندارد بین المللی | Hypertext Transfer Protocol Version 3 (HTTP/3) (draft) |
---|---|
توسعه یافته توسط | کارگروه مهندسی اینترنت |
تاریخ معرفی | Internet-Draft تا تاریخ مه ۲۰۲۰[بروزرسانی] |
وبگاه |
نگارش سوم پروتکل انتقال ابرمتن یک پیشنویس مبتنی بر یک پیشنویس قبلی RFC میباشد بعد تر به نام "پروتکل انتقال ابرمتن (HTTP) بر روی QUIC" نام نهاده شد.QUIC یک لایه انتقال و پروتکل انتقال میباشد که به صورت بدوی توسط گوگل توسعه داده شده است.کنترل ازدحام در این فضای کاربری روی یک پروتکل دادهنگاری کاربران(UDP) استفاده میشود.
در روز ۲۸ اکتبر ۲۰۱۸ در یک گفت گوی داخل میلینگ لیست مارک ناتینگام بر کرسی کارگروه مهندسی اینترنت (IETF) نشست.این کارگروه بواسطه گروه های کاربری HTTP و QUIC طی یک درخواست رسمی خواست تا نام پروژه از HTTP-over-QUIC به HTTP/3 (نگارش سوم پروتکل انتقال ابرمتن) تغییر کند.این درخواست بدین منظور صورت گرفت که شناسایی آن از دیگر مفاهیم اتصال HTTP بهصورت پروتکل سیمی شفاف و قابلشناسایی شود و بدین صورت مردم تفکیک این از QUIC را متوجه شدند.فعالیت اخیر به این دلیل نیز انجام شد ، که توسعه این ابزار پس از نهایی شدن و انتشار پیشنویس از گروه کاربری QUIC به گروه کاربری HTTP محول شود.[۴]مدتی بعد پیشنهاد ناتینگام توسط همکارانش در کارگروه مهندسی اینترنت در نوامبر ۲۰۱۸ مورد قبول گرفت.[۵]
پشتیبانی از نگارش سوم HTTP در سپتامبر ۲۰۱۹ به گوگل کروم اضافه شد ، همچنین در نوامبر ۲۰۱۹ نیز فایرفاکس این پشتیبانی را اضافه کرد.[۶][۷]
پیادهسازی ها
مرورگرها
مرورگر | نگارش پیادهسازی شده | تاریخ |
---|---|---|
گوگل کروم | Canary build | سپتامبر ۲۰۱۹ |
فایرفاکس | Nightly build (72.0a1) | نوامبر ۲۰۱۹ |
کتابخانه ها
کتابخانه هایی متنباز که منطق کلاینت یا سرور را برای HTTP/3 یا QUIC پیاده کرده اند به شرح زیر هستند.
نام کتابخانه | زبان برنامهنویسی | شرکت سازنده | آدرس مخزن |
---|---|---|---|
quiche | Rust | Cloudflare | https://github.com/cloudflare/quiche |
neqo | Rust | Mozilla | https://github.com/mozilla/neqo |
proxygen | C++ | https://github.com/facebook/proxygen#quic-and-http3 | |
C++ | https://github.com/chromium/chromium/tree/master/net/quic | ||
lsquic | C | LiteSpeed | https://github.com/litespeedtech/lsquic |
Flupke | Java | https://bitbucket.org/pjtr/flupke | |
h2o | C | https://github.com/h2o/h2o | |
libcurl[۸][۹] | C | https://github.com/curl/curl | |
aioquic | Python | https://github.com/aiortc/aioquic | |
quic-go | Go | https://github.com/lucas-clemente/quic-go |
کتابخانه quiche (ساخته کلادفلر) میتواند به انجیناکس متصل شود.[۱۰]بر طبق برنامه ریخته شده HTTP/3 از نسخه ۱.۱۷ انجینایکس پشتیبانی میشود.[۱۱]
تعدادی کتابخانه وجود دارند که پیشنویسی قدیمیتر از پروتکل یا نگارش های گوگل از QUIC را پیادهسازی کرده اند.(مانند : Q046 در گوگل کروم ، نسخه ۷۶)
منابع
- مشارکتکنندگان ویکیپدیا. «HTTP/3». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۵ دسامبر ۲۰۱۹.
پیوند به بیرون
- پیشنویس گروه کاری QUIC در کارگروه مهندسی اینترنت برای HTTP/3 بایگانیشده در ۱۴ سپتامبر ۲۰۱۹ توسط Wayback Machine
- نمایش پشتیبانی از HTTP/3 در مرورگرهای مختلف
- فهرست پیادهسازی های QUIC بر روی ویکی گروهکاری این پروژه در کارگروه مهندسی اینترنت
- ابزاری برای بررسی پروتکل HTTP/3