پروتکل انتقال ابرمتن نگارش ۲
HTTP/2 (در اصل به نام HTTP/2.0) یک بازنگری عمده بر روی پروتکل شبکه ای HTTP میباشد که در وب جهان گستر استفاده میگردد. پروتکل HTTP/2 از پروتکل تجربی SPDY، که توسط گوگل توسعه داده شده، مشتق شدهاست.[1] HTTP/2[2] توسط کار گروه پروتکل انتقال ابر متن موسوم به httpbis (که در آن bis به معنی "دوم") است توسعه داده شدهاست که این کارگروه خود بخشی از نیروی ضربت مهندسی اینترنت است. HTTP/2 اولین نسخه جدید HTTP از HTTP 1.1 بود که در سال ۱۹۹۷ در RFC 2068 به صورت یک استاندارد درآمده است. کار گروه، HTTP/2 را در دسامبر ۲۰۱۴ جهت در نظر گرفته شدن به صورت یک استاندارد پیشنهادی به گروه راهبری مهندسی اینترنت ارائه کردند و این نهاد در هفده فوریه ۲۰۱۵ اجازه انتشار آن را به عنوان یک استاندارد پیشنهادی صادر نمود.[3] مشخصات HTTP/2 تحت عنوان RFC 7540 در مارس ۲۰۱۵ منتشر گردیدند.[4]
این استاندارد توسط مرورگرهای کروم، اپرا، فایرفاکس،[5] اینترنت اکسپلورر ۱۱، سافاری ،آمازون سیلک و ادج پشتیبانی شدهاست.[6] از پایان سال ۲۰۱۵، اکثر مرورگرهای اصلی پشتیبانی از HTTP/2 را به قابلیتهایشان افزودهاند.[7]
بر اساس گزارش W3Techs، تا تاریخ ژوئن ۲۰۱۸، ۲۶٫۵ درصد از ۱۰ میلیون وب سایت از HTTP/2 پشتیبانی مینمودهاند.[8]
اهداف
در منشور کارگروه چند هدف و موضوع قابل توجه ذکر شدهاست:[9]
- ایجاد یک مکانیسم گفتگو که به کلاینتها و سرورها اجازه میدهد تا انتخاب نمایند که از HTTP 1.1, 2.0 یا بهطور بالقوه پروتکلهای دیگر غیر ازHTTP استفاده نمایند.
- فراهم کردن سطح بالایی از سازگاری با HTTP 1.1 (برای مثال با متدها، کدهای وضعیت ،Uriها و اغلب فیلدهای سرآیند).
- کاهش زمان تأخیر به منظور بهبود سرعت لود صفحه در مرورگرهای وب با توجه به:
- فشرده سازی دادهها ی HTTP headers
- HTTP/2 فشار سرور
- خط لوله سازی درخواستها
- رفع مشکل مسدودسازی سر خط در HTTP 1.x
- تسهیم درخواستهای متعدد بر روی یک اتصال TCP
- پشتیبانی از موارد استفاده عمومی موجود HTTP، مانند مرورگرهای وب دسکتاپ، مرورگرهای وب موبایل، رابطهای برنامهنویسی کاربردی وب، وب سرورها در مقیاسهای مختلف، پروکسی سرورها، پروکسی معکوس سرورها، فایروالها و شبکههای تحویل محتوا.
تفاوتها از HTTP 1.1
تغییرات پیشنهادی نیاز به هیچ گونه تغییراتی در چگونگی کارکرد برنامههای کاربردی وب موجود ندارند، اما برنامههای جدید میتوانند از ویژگیهای جدید برای افزایش سرعت استفاده کنند.
HTTP/2 بیشتر سینتکس سطح بالای HTTP 1.1، مانند متدها، کدهای وضعیت، فبلدهای سرآیند و Uri را به همان صورت حفظ کردهاست. آنچه جدید است این است که چگونه دادهها قاببندی شده و بین کلاینت و سرور انتقال داده شوند.[10]
وب سایتهایی که کارآمد هستند، تعداد درخواستهای مورد نیاز برای رندر کردن کل صفحه را با عمل خلاصهسازی کد منبع (کاهش مقدار کد و بستهبندی قطعات کوچکتر از کد را در بستههای نرمافزاری، بدون کاهش توانایی عملکرد کد) مثلاً در مورد تصاویر و اسکریپتها، به حداقل میرسانند. اما خلاصهسازی کد منبع نه لزوماً مناسب و نه کارآمد است و ممکن است هنوز نیاز به اتصالات HTTP جداگانه ای برای دریافت صفحه و منابع خلاصهسازی شده داشته باشد. HTTP/2 به سرور اجازه میدهد تا محتوا را «فشار» دهد، این کار سبب میشود که داده لازم برای پاسخ به مواردی که پرسوجوها بیشتر از آنچه کلاینت حقیقتاً درخواست کرده هستند، فراهم گردد. این کار به سرور اجازه میدهد تا دادههایی را که میداند یک مرورگر وب برای ارائه یک صفحه وب به آنها نیاز خواهد داشت، بدون انتظار برای اینکه مرورگر به بررسی پاسخ اولیه بپردازد و بدون سربار اضافی برای یک چرخه درخواست اضافه تر، برای آن تأمین نماید.
افزون بر این، بهبودهای عملکرد دیگری هم در اولین پیشنویس از HTTP/2 (که یک کپی از SPDY بود) از طریق تسهیم درخواستها و پاسخها به منظور جلوگیری از مشکل مسدودسازی سر خط در HTTP 1 (حتی زمانی که خط لوله سازی HTTP استفاده شدهاست)، فشرده سازی سرآیند و اولویت بندی درخواستها حاصل شدهاست.HTTP/2 دیگر از مکانیسم انتقال رمزگذاری تکه بندی شده HTTP 1.1 را پشتیبانی نمیکند و به جای آن مکانیسم کارآمدتر خودش را برای جریان دهی دادهها استفاده میکند.
پیدایش از روی SPDY و تفاوتهای بعدی با آن
SPDY (تلفظ مانند "اسپیدی") بود یک پروتکل جایگزین قبلی برای HTTP بود که توسط یک پروژه تحقیقاتی پیشگام توسط گوگل توسعه یافته بود.[11] SPDY در درجه اول بر کاهش زمان تأخیر متمرکز شده بود، از همان خط لوله TCP استفاده میکرد، اما به منظور دستیابی به این کاهش از پروتکلهای متفاوتی استفاده مینمود. پایه ایترین تغییرات اعمال شده بر روی HTTP 1.1 برای ایجاد SPDY شامل: «خط لوله سازی صحیح درخواستها بدون محدودیتهای FIFO، مکانیسم قاب بندی پیامها برای ساده سازی توسعه کلاینت و سرور، فشرده سازی اجباری (شامل سرآیندها)، زمان بندی اولویتها و حتی ارتباط دوسویه» بودند.[12]
کارگروه httpbis پروتکل Google SPDY، پیشنهاد پروتکل مایکروسافتی HTTP Speed+Mobility (بر مبنایSPDY), و ارتقا شبکه-پسند HTTP را مورد تحقیق قرار دادند. در ژوئیه ۲۰۱۲ فیس بوک برای هر کدام از این پیشنهادها بازخوردی را ارائه کرد و توصیه نمود که HTTP/2 بر اساس SPDY بنا شود. پیشنویس اولیه HTTP/2 در ماه نوامبر سال ۲۰۱۲ منتشر شد و بر مبنای یک کپی مستقیم از SPDY تهیه شده بود.
بزرگترین تفاوت میان HTTP/1.1 و SPDY این بود که هر عمل کاربر در SPDY دارای یک "شناسه جریان " بود، که این به معنی وجود تنها یک کانال اتصال TCP از کاربر به سرور است. SPDY درخواستها را به دو دسته "کنترل" یا "داده " با استفاده از " پروتکل باینری آسان جهت پارسه کردن با دو نوع قاب" تقسیم میکرد. SPDY بهبود چشمگیری را نسبت به HTTP به نمایش گذاشت به طوری که سرعت بارگذاری صفحات بین ۱۱٫۸۱٪ تا ۴۷٫۷٪ سریعتر شده بود.
HTTP/2 از SPDY به عنوان یک سکوی پرش استفاده کرد. در میان بسیاری از تفاوتهای مفصل بین پروتکلها، قابل توجهترین تفاوت این است که HTTP/2، به جای استفاده از فشرده سازی پویای مبتنی بر جریان در SPDY، از یک الگوریتم فشرده سازی سرآیند ثابت بر مبنای کد هافمن استفاده میکند. این امر به کاهش خطر بالقوه حملات فشرده سازی اوراکل در پروتکل، مانند حملات CRIME کمک مینماید.
در فوریه ۹، ۲۰۱۵ گوگل اعلام کرد قصد دارد پشتیبانی از SPDY را در مرورگر کروم به نفع پشتیبانی از HTTP/2 حذف نماید؛ که این حذف از مرورگر کروم ۵۱ عملی گردید.
رمزگذاری
HTTP/2 برای هر دو HTTP Uri (یعنی بدون رمزگذاری) و HTTPS Uri (بر روی TLS یا استفاده از توسعه ALPN که در آن TLS 1.2 یا جدیدتر مورد نیاز است) تعریف شدهاست.
اگر چه خود استاندارد نیاز به استفاده از رمزگذاری ندارد، همه پیادهسازیهای اصلی کلاینت (فایرفاکس، کروم، سافاری، اوپرا، اینترنت اکسپلورر، ادج) اعلام کردهاند که آنها تنها از HTTP/2 بر روی TLS پشتیبانی میکنند که باعث میشود رمزگذاری عملاً الزامی باشد.
انتقادات
فرایند توسعه HTTP/2 و خود پروتکل با انتقاداتی مواجه شدهاند.
پل هنینگ کمپ توسعه دهنده ای که در فری بی اس دی و ورنیش فعالیت مینماید، ادعا میکند که استاندارد طی یک زمانبندی غیرواقع گرایانه و کوتاه آماده شده که نتیجه آن حذف کلیه مفاهیم جدید در HTTP/2 به جز آنها که در پروتکل SPDY آمدهاند بوده و در نتیجه سایر فرصتها برای بهینهسازی از دست رفتهاند. هنینگ کمپ از خود پروتکل نیز برای ناپایداری و داشتن پیچیدگی غیر ضروری و بیش از اندازه انتقاد میکند. او همچنین میگوید که این پروتکل، اصل لایه بندی پروتکلها را، به عنوان مثال با تکثیر کنترل جریان در لایه انتقال (TCP)، نقض میکند. با این وجود بیشترین نگرانیها مربوط به مسائل رمزگذاری میشوند.
رمزگذاری
در ابتدا برخی از اعضای کارگروه سعی در تعریف یک نیازمندی جهت رمزگذاری در پروتکل نمودند. این کار با انتقاداتی مواجه شد.
منتقدان اعلام کردند که رمزگذاری هزینههای رایانشی غیرقابل چشم پوشی در برخواهد داشت و بسیاری از برنامههای کاربردی HTTP در واقع نیاز به رمزگذاری ندارند و ارائه دهندگان هیچ تمایلی به صرف منابع اضافی بر روی آن نخواهند داشت. طرفداران رمزگذاری اعلام کردهاند که این سربار تولید شده توسط رمزگذاری در عمل قابل اغماض است.[13] پل هنینگ کمپ از IETF به خاطر پیروی از یک رویه سیاسی خاص در مورد HTTP/2 انتقاد نمود.[14][15][16] برای اعضای جامعه منبع باز، انتقاد از رویه رمزگذاری اجباری بر روی یک چارچوب صدور گواهی موجود، چیز جدید و منحصر به فردی نیست. یک کارمند سیسکو در سال ۲۰۱۳ اظهار داشت: که مدل گواهی دهی فعلی برای دستگاههای کوچک مانند روترها سازگار نیست، چرا که در مدل فعلی نه تنها نیاز به ثبت نام سالانه و عدم چشم پوشی از هزینههای ناچیز برای هر گواهی میباشد، بلکه باید این درآمدهای ناچیز طور مستمر در حساب درآمدهای سالانه شرکت تکرار شوند.[17] کارگروه در نهایت بر سر اجباری بودن رمزگذاری به اجماع نرسیدند، اگر چه بیشتر پیادهسازیهای سمت کلاینت به آن نیاز دارند که باعث میشود رمزگذاری عملاً مورد نیاز باشد.
هم چنین پروتکل HTTP/2 در خصوص عدم پشتیبانی از رمزگذاری فرصت طلبانه با انتقاداتی مواجه شدهاست. رمزگذاری فرصت طلبانه یک معیار جهت مقاومت در برابر نظارت غیر محسوس است که شبیه به مکانیسم STARTTLS میباشد که از گذشته در پروتکلهای اینترنت مانند SMTP موجود بودهاست. منتقدان اعلام کردهاند که پیشنهاد HTTP/2 در تناقض با RFC7258 "نظارت غیرمحسوس یک حمله است " خود IETF میباشد، که آن نیز همچنین دارای یک وضعیت بهترین تجربه فعلی میباشد.[18] RFC7258/BCP188 اجبار میکند که که نظارت غیرمحسوس به عنوان یک حمله در نظر گرفته شود. پروتکلهای طراحی شده توسط IETF باید گامهایی را جهت محافظت در برابر نظارت غیرمحسوس (برای مثال از طریق استفاده از رمزگذاری فرصت طلبانه) بردارند. تعدادی پیشنویس مشخصات برای رمزگذاری فرصت طلبانه HTTP/2 تهیه گردیدند[19][20][21] که از بین آنها draft-nottingham-http2-encryption به عنوان آیتم کاری رسمی توسط کارگروه به تصویب رسید که در نهایت منجر به انتشار RFC 8164 در مارس ۲۰۱۷ گردید.
نقاط عطف توسعه
Status | Date | Milestone |
---|---|---|
انجام شد | December 20, 2007[22][23] | اولین پیشنویس اینترنتی بازنگری HTTP 1.1 |
انجام شد | January 23, 2008[24] | اولین پیشنویس اینترنتی ویژگیهای امنیتی HTTP |
انجام شد | Early 2012[25] | فراخوان جهت ارائه پیشنهادها برای HTTP 2.0 |
انجام شد | October 14 – November 25, 2012[26][27] | آخرین فراخوان کارگروه برای بازنگری HTTP 1.1 |
انجام شد | November 28, 2012[28][29] | اولین پیشنویس کارگروه برای HTTP 2.0, بر اساس draft-mbelshe-httpbis-spdy-00 |
انجام شد | آخرین فراخوان کار گروه برای ویژگیهای امنیتی HTTP | |
انجام شد | September 2013[30][31] | ثبت بازنگری HTTP 1.1 در IESG برای لحاظ کردن به عنوان یک استاندارد پیشنهادی |
انجام شد | February 12, 2014[32] | IESG به بازنگری HTTP 1.1 اجازه داد تا به عنوان یک استاندارد پیشنهادی منتشر شود |
انجام شد | June 6, 2014[33] | انتشار بازنگری HTTP 1.1 به عنوان RFC [rfc:7230 7230], [rfc:7231 7231], [rfc:7232 7232], [rfc:7233 7233], [rfc:7234 7234], [rfc:7235 7235] |
انجام شد | ۱ اوت ۲۰۱۴ – September 1, 2014[34] | آخرین فراخوان کارگروه برای HTTP/2 |
انجام شد | December 16, 2014[35] | ثبت HTTP/2 در IESG برای لحاظ کردن به عنوان یک استاندارد پیشنهادی |
انجام شد | ۳۱ دسامبر ۲۰۱۴ – January 14, 2015[36] | آخرین فراخوان IETF برای HTTP/2 |
انجام شد | January 22, 2015[37] | تلهچت IESG برای بازنگری HTTP/2 به عنوان استاندارد پیشنهادی |
انجام شد | February 17, 2015[38] | IESG به HTTP/2 اجازه داد تا به عنوان یک استاندارد پیشنهادی منتشر شود |
انجام شد | May 14, 2015[39] | انتشار HTTP/2 به عنوان RFC 7540 |
سمت سرور پشتیبانی
نرمافزار سرور
- Apache 2.4.12 supports HTTP/2 via the module mod_h2,[40] although appropriate patches must be applied to the source code of the server in order for it to support that module. As of Apache 2.4.17 all patches are included in the main Apache source tree, although the module itself was renamed mod_http2.[41] Old versions of SPDY were supported via the module mod_spdy,[42] however the development of the mod_spdy module has stopped.[43]
- Apache Tomcat supports HTTP/2 with version 8.5 and newer with a configuration change.[44]
- Apache Traffic Server supports HTTP/2.[45]
- Caddy supports HTTP/2.[46]
- Citrix NetScaler 11.x supports HTTP/2.[47]
- Sucuri Supports HTTP/2.[48]
- F5 BIG-IP Local Traffic Manager 11.6 supports HTTP/2.[49]
- h2o was built from the ground up for HTTP/2 support.[50]
- HAProxy 1.8 supports HTTP/2.[51]
- Jetty 9.3 supports HTTP/2.[52]
- LiteSpeed Web Server 5.0 supports HTTP/2.[53]
- Microsoft IIS supports HTTP/2 in Windows 10[54] and Windows Server 2016.
- Netty 4.1 supports HTTP/2.[55]
- nginx 1.9.5 supports HTTP/2.[56]
- Node.js 5.0 supports HTTP/2 with a module[57] and Node 8.4 introduced experimental built-in support for HTTP/2.[58]
- OpenLiteSpeed 1.3.11 and 1.4.8 supports HTTP/2.[59]
- Proxygen supports HTTP/2.
- Pulse Secure Virtual Traffic Manager 10.2 supports HTTP/2.[60]
- Radware Alteon NG supports HTTP/2.[61]
- ShimmerCat supports HTTP/2.[62]
- Vert.x 3.3 supports HTTP/2.
- Warp (Haskell web server, used by default in Yesod) supports HTTP/2.
- Wildfly 9 supports HTTP/2.
شبکه تحویل محتوا
- Akamai اولین CDN عمده پشتیبانیکننده از HTTP/2 و HTTP/2 فشار سرور . http2.akamai.com اجرای پیادهسازی HTTP/2 از جمله فشار سرور را توسط Akamai به نمایش میگذارد.
- Microsoft Azure, از HTTP/2 پشتیبانی میکند.
- CDN77 با استفاده از nginx (۲۰ اوت ۲۰۱۵) از HTTP/2 پشتیبانی میکند . http2demo.io نمایشی از اجرای HTTP/2 توسط CDN77 میباشد.
- Cloudflare با استفاده از nginx از HTTP/2 پشتیبانی میکند با SPDY به عنوان یک جایگزین برای مرورگرهای فاقد پشتیبانی در حالی که امنیت و عملکرد خدمات حفظ میشود.[63] Cloudflare اولین CDN عمده بود که از فشار سرور HTTP/2 پشتیبانی کرد.[64]
- AWS CloudFront از HTTP/2 پشتیبانی میکند.[65]
- Fastly از HTTP/2 از جمله فشار سرور پشتیبانی میکند.[66]
- Duane baker Incapsula CDN از HTTP/2 پشتیبانی میکند.[67] http2.incapsula.com پیادهسازی HTTP/2 توسط Incapsula را به نمایش میگذارد. پیادهسازی هم چنین شامل پشتیبانی برای WAF و جلوگیری از DDoS نیز میشود.
- KeyCDN با استفاده از nginx (اکتبر ۶، ۲۰۱۵) از HTTP/2 پشتیبانی میکند. HTTP/2 تست یک صفحه تست است به منظور بررسی اینکه آیا سرور شما پشتیبانی از HTTP/2 مینماید.
برنامهریزی نشده
پیادهسازی
- دیگر پیاده سازیها GitHub HTTP/2 wiki جمعآوری شدهاند.
منابع
- Bright, Peter (Feb 18, 2015). "HTTP/2 finished, coming to browsers within weeks". Ars Technica.
- Thomson, M. (ed.), Belshe M. and R. Peon. "Hypertext Transfer Protocol version 2: draft-ietf-httpbis-http2-16". ietf.org. HTTPbis Working Group. Retrieved February 11, 2015.
- Mark Nottingham (February 18, 2015). "HTTP/2 Approved". www.ietf.org. Internet Engineering Task Force. Retrieved March 8, 2015.
- "RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)". IETF. May 2015. Retrieved May 14, 2015.
- "See what's new in Firefox!". www.mozilla.org. Mozilla Foundation. February 2015.
- "Can the rise of SPDY threaten HTTP?". blog.restlet.com. Restlet, Inc. October 2011. Archived from the original on 6 January 2014. Retrieved 20 June 2018.
- "HTTP2 browser support". Retrieved March 9, 2017.
- "Usage of HTTP/2 for websites". World Wide Web Technology Surveys. W3Techs. Retrieved June 3, 2018.
- "Hypertext Transfer Protocol Bis (httpbis)". Internet Engineering Task Force. 2012.
- Ilya Grigorik. "Chapter 12: HTTP 2.0". High Performance Browser Networking. O'Reilly Media, Inc.
- Sebastian Anthony (March 28, 2012). "S&M vs. SPDY: Microsoft and Google battle over the future of HTTP 2.0". ExtremeTech.
- Grigorik, Ilya. "Life beyond HTTP 1.1: Google's SPDY".
- Grigorik, Ilya. "Is TLS Fast Yet?". Retrieved 30 December 2015.
- Kamp, Poul-Henning (January 6, 2015). "HTTP/2.0 – The IETF is Phoning It In (Bad protocol, bad politics)". ACM Queue.
- Kamp, P. H. (2015). "Http/2.0". Communications of the ACM. 58 (3): 40. doi:10.1145/2717515.
- Kamp, Poul-Henning (January 7, 2015). "Re: Last Call: <draft-ietf-httpbis-http2-16.txt> (Hypertext Transfer Protocol version 2) to Proposed Standard". https://lists.w3.org/Archives/Public/ietf-http-wg/2015JanMar/0043.html. Retrieved January 12, 2015.
- Lear, Eliot (August 25, 2013). "Mandatory encryption *is* theater". https://lists.w3.org/Archives/Public/ietf-http-wg/2013JulSep/0909.html. Retrieved January 26, 2015.
- Murenin, Constantine A. (January 9, 2015). "Re: Last Call: <draft-ietf-httpbis-http2-16.txt> (Hypertext Transfer Protocol version 2) to Proposed Standard". https://lists.w3.org/Archives/Public/ietf-http-wg/2015JanMar/0106.html. Retrieved January 12, 2015.
- Paul Hoffman. "Minimal Unauthenticated Encryption (MUE) for HTTP-2: draft-hoffman-httpbis-minimal-unauth-enc-01". Internet Engineering Task Force.
- Mark Nottingham; Martin Thomson. "Opportunistic Encryption for HTTP URIs: draft-nottingham-http2-encryption-03". Internet Engineering Task Force.
- Mark Nottingham; Martin Thomson. "Opportunistic Security for HTTP: draft-ietf-httpbis-http2-encryption-01". Internet Engineering Task Force.
- Nottingham, Mark (June 7, 2014). "RFC2616 is Dead". Retrieved September 20, 2014.
- "HTTP/1.1, part 1: URIs, Connections, and Message Parsing: draft-ietf-httpbis-p1-messaging-00". December 20, 2007. Retrieved September 20, 2014.
- "Security Requirements for HTTP: draft-ietf-httpbis-security-properties-00.txt". January 23, 2008. Retrieved September 20, 2014.
- Nottingham, Mark (January 24, 2012). "Rechartering HTTPbis". Retrieved September 20, 2014.
- Nottingham, Mark (October 14, 2012). "Working Group Last Call for HTTP/1.1 p1 and p2". Retrieved September 20, 2014.
- Nottingham, Mark (October 23, 2012). "Second Working Group Last Call for HTTP/1.1 p4 to p7". Retrieved September 20, 2014.
- "SPDY Protocol: draft-ietf-httpbis-http2-00". HTTPbis Working Group. November 28, 2012. Retrieved September 20, 2014.
- Nottingham, Mark (November 30, 2012). "First draft of HTTP/2". Retrieved September 20, 2014.
- "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing". Archived from the original on August 13, 2014. Retrieved September 20, 2014.
- "Last Call: <draft-ietf-httpbis-p1-messaging-24.txt> (Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing) to Proposed Standard". The IESG. October 21, 2013. Retrieved September 20, 2014.
- "Protocol Action: 'Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing' to Proposed Standard (draft-ietf-httpbis-p1-messaging-26.txt)". ietf-announce mailing list. The IESG. February 12, 2014. https://www.ietf.org/mail-archive/web/ietf-announce/current/msg12461.html. Retrieved January 18, 2015.
- The RFC Editor Team (June 6, 2014). "RFC 7230 on Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing". ietf-announce mailing list. https://www.ietf.org/mail-archive/web/ietf-announce/current/msg12871.html. Retrieved January 18, 2015.
- Nottingham, Mark (August 1, 2014). "Working Group Last Call: draft-ietf-httpbis-http2-14 and draft-ietf-httpbis-header-compression-09". HTTP Working Group. Retrieved September 7, 2014.
- "History for draft-ietf-httpbis-http2-16". IETF. Retrieved January 3, 2015.
2014-12-16 IESG state changed to Publication Requested
- "Last Call: <draft-ietf-httpbis-http2-16.txt> (Hypertext Transfer Protocol version 2) to Proposed Standard from The IESG on 2014-12-31". Internet Engineering Task Force. 2014. Retrieved January 1, 2015.
- "IESG Agenda: 2015-01-22". IETF. Archived from the original on January 15, 2015. Retrieved January 15, 2015.
- The IESG (February 17, 2015). "Protocol Action: 'Hypertext Transfer Protocol version 2' to Proposed Standard (draft-ietf-httpbis-http2-17.txt)". httpbis mailing list. https://lists.w3.org/Archives/Public/ietf-http-wg/2015JanMar/0478.html. Retrieved February 18, 2015.
- The RFC Editor Team (May 14, 2015). "RFC 7540 on Hypertext Transfer Protocol Version 2 (HTTP/2)". ietf-announce mailing list. https://www.ietf.org/mail-archive/web/ietf-announce/current/msg14126.html.
- "http/2 module for apache httpd". Retrieved July 28, 2015.
- "Apache 2.4.17 release changelog". Retrieved August 22, 2017.
- Matthew Steele (June 19, 2014). "mod_spdy is now an Apache project". Google Developers Blog.
- "Log of /httpd/mod_spdy". svn.apache.org. Retrieved February 3, 2017.
- "Apache Tomcat Migration". Retrieved July 29, 2016.
- "Apache Traffic Server Downloads". trafficserver.apache.org. September 21, 2015.
- "caddyserver.com". March 23, 2016.
- "3 Simple Steps to Bring HTTP/2 Performance to Legacy Web Applications". September 22, 2015. Archived from the original on 25 September 2015. Retrieved 20 June 2018.
- "Sucuri += HTTP/2 — Announcing HTTP/2 Support". Sucuri. Retrieved December 5, 2015.
- Robert Haynes. "Goodbye SPDY, Hello HTTP/2". F5 Networks. Retrieved September 18, 2015.
- "H2O".
- "What's New in HAProxy 1.8". haproxy.com. Retrieved Feb 9, 2018.
- "Jetty change log". Eclipse Foundation. May 28, 2015. Retrieved May 28, 2015.
- "LSWS 5.0 Is Out – Support for HTTP/2, ESI, LiteMage Cache". April 17, 2015.
- Rob Trace; David Walp (October 8, 2014). "HTTP/2: The Long-Awaited Sequel". MSDN IEBlog. Microsoft Corporation.
- "Netty.news: Netty 4.1.0.Final released". netty.io. Retrieved June 1, 2016.
- "nginx changelog". www.nginx.com. 2015-09-22.
- "Node http2". www.github.com. July 26, 2016.
- "Node v8.4.0 (Current)". nodejs.org. August 15, 2017.
- "OpenLiteSpeed 1.4.5 change log". LiteSpeed Technologies, Inc. February 26, 2015. Retrieved February 26, 2015.
- "Pulse Virtual Traffic Manager". August 22, 2017.
- "Radware Combines an Integrated HTTP/2 Gateway with its Leading Fastview Technology to Provide Web Server Platforms Increased Acceleration". July 20, 2015.
- "www.shimmercat.com". March 23, 2016.
- "HTTP/2 is here! Goodbye SPDY? Not quite yet". CloudFlare. Retrieved December 5, 2015.
- Krasnov, Vlad (April 28, 2016). "Announcing Support for HTTP/2 Server Push". CloudFlare. Retrieved May 18, 2016.
- "Amazon CloudFront now supports HTTP/2". Amazon Web Services, Inc. Retrieved 2016-09-08.
- "Announcing Limited Availability for HTTP/2". Retrieved August 22, 2017.
- "HTTP/2 is here: What You Need to Know". Retrieved November 1, 2015.
- stbuehler. "Feature #2322: Support for SPDY protocol". Lighttpd.
- "Feature #2726: Support for HTTP/2 protocol", Lighttpd