پروتکل Hypertext Transfer یا HTTP را میتوان ستون فقرات بسیاری از کارکردهای اینترنت به حساب آورد. درحالی که پروتکل HTTP/1.1 برای مدتی طولانی در دسترس و استاندارد بوده، این روزها خیلی از سرویسدهندگان وب به سراغ پروتکل HTTP/2 رفتهاند تا از مزایایی مانند سرعت بالاتر و پرفورمنس بهتر برخوردار شوند. HTTP/2 را میتوان یک بازنگری عمیق در شبکه HTTP توصیف کرد که بسیاری از محدودیتهای HTTP/1.1 را کنار میزند و بهرهوری ارتباطات وب را بالا میبرد. در این مطلب میگوییم HTTP2 چیست و چطور کار میکند و در قیاس با HTTP/1.1 چه بهبودهایی به همراه میآورد.
HTTP2 چیست ؟
در سادهترین حالت، HTTP/2 نسخه دوم پروتکل HTTP است. این پروتکل با هدف افزایش سرعت و سادگی اپلیکیشنها طراحی شده و بسیاری از نقاط ضعف ورژنهای ابتدایی HTTP را کنار میزند. مهمترین اهداف HTTP/2 را در ادامه آوردهایم:
- امکان استفاده از تکنیک مالتیپلکس (Multiplexing) برای درخواستها و پاسخها
- امکان فشردهسازی هدر
- حصول اطمینان از سازگاری با متدها، کدهای وضعیت، URI-ها و کادرهای هدر تعریفشده با استاندارد HTTP/1.1
- بهینهسازی اولویتبندی درخواستها و حصول اطمینان از بارگذاری سریع برای بهبود تجربه کاربری
- پشتیبانی از پوش سمت سرور (Server-Side Push)
- سازگاری با نسخههای قبلی در سمت سرور و حصول اطمینان از خدماترسانی سرور به مشتریان از طریق HTTP/1.1
- تبدیل شدن به پروتکلی دودویی یا باینری (Binary) به جای HTTP/1.1 که پروتکلی متنی (Text) است
بیشتر بخوانید: پروتکل https چیست و چه تفاوتی با HTTP دارد؟
دلایل اهمیت HTTP2 چیست ؟
پروتکل HTTP (یا Hypertext Transfer Protocol) به بخش اعظمی از وب امروزی قوت میرساند. زمانی که صفحات وب را باز میکنید، مرورگر شما یک درخواست HTTP به وب سرور (وب سرور چیست؟) میفرستد و محتوا صفحه را به عنوان پاسخ دریافت میکند.
باید توجه داشت که HTTP نوعی پروتکل کلاینت-سرور است. این یعنی درخواستها از یک نقطه (مثلا مرورگر شما که نقش کلاینت را ایفا میکند) ارسال میشوند. پروتکل HTTP سپس این درخواست را به سرور انتقال میدهد و به سرور میگوید که دقیقا چه نیازی دارد. برای بارگذاری صحیح صفحه، سرور نیاز به درخواستی برای صفحه HTML (مخفف Hypertext Markup Language)، چند تصویر و احتمالا مقداری کد جاوا اسکریپت دارد. بعد از دریافت درخواستها، داده مورد نیاز فراخوانی شده و به عنوان پاسخ به مرورگر شما ارسال میشود.
از HTTP در نقاط دیگری نیز استفاده میشود که لزوما به چشم کاربران عادی نخواهند آمد. زمانی که پستی جدید در شبکههای اجتماعی منتشر میکنید، برای دوستان خود پیام میفرستید و یا اپلیکیشن مورد علاقه خود را باز میکنید، به احتمال فراوان یک درخواست HTTP در پسزمینه ارسال شده است. این درخواستها به دست آن دسته از سرویسهای اینترنتی میرسند که دادههایی مانند پستهای شبکههای اجتماعی، پیامها و اطلاعات اپلیکیشنهای شما را در خود ذخیره کردهاند.
یکی دیگر از کاربردهای HTTP، استریم داده است. زمانی که با دادههای خرد مانند صفحات HTML یا جاوا اسکریپت سر و کار داریم، پاسخ کامل به صورت مستقیم ارسال میشود. اما وقتی نوبت به فایلهای حجیمتر میرسد، نیاز به استریم داده به کلاینت خواهیم داشت. در این اوقات، اتصال HTTP برای مدتی طولانیتر برقرار باقی میماند و داده در قالب بلوکهای سبکتر ارسال میشوند.
در مجموع باید گفت که بدون HTTP (و حالا HTTP/2)، وب جهانگستر خیلی ساده از کار خواهد افتاد.
مهمترین ویژگیها و مزایای HTTP/2
از جمله ویژگیهای کلیدی پروتکل HTTP/2 میشود به این موارد اشاره کرد:
- دودویی: فرمانهای HTTP/2 به جای متن، با ۰ و ۱ نوشته میشوند.
- مولتیپلکس: با این پروتکل میتوان چندین درخواست و پاسخ را به صورت همزمان ارسال کرد.
- فشردهسازی: با فشردهسازی هدرهایی که پیشتر درخواست شدهاند، بهینگی افزایش مییابد.
- اولویتبندی استریم: با این قابلیت، تبادل استریمهای پیدرپی امکانپذیر میشود.
- پوش سرور: سرور میتواند پیش از دریافت درخواست، اطلاعات اضافی مورد نیاز برای هر درخواست را ارسال کند.
- امنیت بالاتر: HTTP/2 از مجموعهای از اتصالات رمزنگاریشده پشتیبانی میکند.
برجستهترین تفاوتها میان HTTP/1.1 و HTTP2 چیست ؟
همانطور که پیشتر اشاره کردیم، HTTP/2 با هدف کنار زدن بسیاری از محدودیتها و نواقص HTTP/1.1 طراحی شده است. در این بخش میبینیم که برجستهترین تفاوتهایی که HTTP/2 با خود به همراه میآورد چیست.
فشردهسازی
پروتکل HTTP/2 از قابلیتی داخلی برای فشردهسازی هدرهای درخواستی برخوردار شده است. وب اپلیکیشنهای مدرن معمولا با گستره وسیعی از هدرهای مختلف – مثلا هدرهای اعتبارسنجی (Authorization)، دستورالعملهای کش کنترل و اطلاعات کلاینت – سازگاری دارند.
اگرچه فشردهسازی این هدرها ممکن است تفاوت چندانی در هر درخواست واحد ایجاد نکند، اپلیکیشنهای پرترافیک امروزی نیاز به تبادل انبوهی داده دارند. این یعنی بهرهوری در مقیاس کلان افزایش مییابد. برای مقایسه باید گفت HTTP/1.1 هدرها را به صورت پیشفرض فشردهسازی نمیکند.
پرفورمنس
پروتکل HTTP/2 از جنبههای گوناگون، پرفورمنس HTTP/1.1 را بهبود میبخشد:
- تاخیر کمتر: با قابلیت ارسال چندین درخواست به ازای هر اتصال، HTTP/2 تاخیر را به شکل قابل توجهی کاهش میدهد، خصوصا در سایتهایی که منابع کمتر دارند.
- بهبود سرعت بارگذاری صفحات: قابلیت Server Push میتواند منابع حیاتی را پیش از دریافت درخواست، ارسال کند و سرعت بالقوه بارگذاری صفحات را تا چند ثانیه بهبود دهد.
- پرفورمنس بهتر در شبکههای موبایل: بهبودهای HTTP/2 به صورت خاص روی شبکههای موبایلی که تاخیر زیاد دارند به چشم میآید.
- مدیریت بهتر پاسخهای کلان: قابلیت اولویتبندی استریم اطمینان حاصل میکند که مهمترین بخش از محتوا زودتر بارگذاری میشود و کاربران احساس بهتری نسبت به سرعت بارگذاری خواهند داشت.
- کاهش مصرف شبکه: فشردهسازی هدرها و پشتیبانی از مولتیپلکس منجر به استفاده بهینهتر از منابع شبکه میشود که هم به نفع کاربر است و هم سرویسدهنده.
ساختار دودویی به جای متنی
برخلاف HTTP/1.1 که ساختار متنی ساده دارد، HTTP/2 به شکل دودویی یا باینری پیادهسازی شده است. در عمل یعنی شاهد پیادهسازی سادهتر فرمانهایی هستیم که پیشتر به خاطر فضای خالی در فرمت متنی، شکلی پیچیده پیدا میکردند. مرورگرهایی که از HTTP/2 پشتیبانی میکنند، پیش از ارسال فرمانها در شبکه، آنها را از حالت متنی به حالت دودویی تغییر میدهند.
امنیت
پروتکل HTTP/2 چند بهبود امنیتی مهم نیز با خود به همراه میآورد:
- رمزنگاری عمدتا اجباری: اگرچه این موضوع جزو پیشنیازها نیست، اکثر مرورگرها HTTP/2 را تنها در TLS (یا Transport Layer Security) پیادهسازی میکنند. به این ترتیب، رمزنگاری به امری اجباری برای گشتوگذار در وب تبدیل میشود و امنیت کلی بهبود مییابد.
- ایمنی در برابر حملات Response Splitting: قالب دودویی HTTP/2 از شما در برابر حملات Response Splitting نیز محافظت میکند. در واقع اطمینان حاصل میشود که انتقال داده به شکلی قاعدهمندتر و قابل پیشبینیتر از HTTP/1.1 پیش برود که تزریق هدر را امکانپذیر میکرد.
- کاهش حملات کراس-پروتکل: افزونه ALPN (مخفف Application-Layer Protocol Negotiation) در HTTP/2 از برخی حملات Cross-Platform بهخصوص جلوگیری میکند.
- مقابله با حملات Slowloris: مولتیپلکس در HTTP/2 باعث میشود که تحت فشار گذاشتن منابع سرور از طریق ارسال درخواستهای کند و ناقص برای مهاجمان دشوارتر باشد. با توجه به اینکه در هر اتصال امکان رسیدگی به چندین استریم وجود دارد، اثرگذاری این نوع از حملات محرومسازی از سرویس یا دیداس (جلوگیری از حملات ddos در سرور) کاهش مییابد.
- بهبودهای امنیتی عمومی: اگرچه HTTP/2 مستقیما CSRF (یا Cross-Site Request Forgery) را بهبود نمیدهد، اما بهینگی و انتقال ساختارمند داده باعث میشود محیط وبی امنتر و قدرتمندتر پدید آید.
تمامی این بهبودها باعث میشوند HTTP/2 سریعتر و امنتر از نسخههای قبلی ظاهر شود.
مدلهای ارائه (Delivery Models)
درحالی که پروتکل HTTP/1.1 پاسخها را براساس یک درخواست واحد ارائه میکند، HTTP/2 از قابلیتهای مولتیپلکسینگ و Server Push برای افزایش پرفورمنس ارائه کمک میگیرد.
سرریز بافر (Buffer Overflow)
«بافر» به فضایی گفته میشود که کلاینت و سرور از آن برای نگهداری درخواستهایی که هنوز پردازش نشدهاند، استفاده میکنند. در HTTP/1.1، کنترل جریان (Flow Control) که برای مدیریت فضای بافر در دسترس استفاده میشود، در لایه Transport پیاده شده است. در HTTP/2، کلاینت و سرور میتوانند کنترلهای جریان خاص خود را برای برقراری ارتباط با فضای بافر در دسترس داشته باشند.
مولتیپلکسینگ (Multiplexing)
پروتکل HTTP/2 از مولتیپلکسینگ کامل برای درخواست و پاسخ پشتیبانی میکند. در عمل، این یعنی هر اتصالی که از مرورگر شما به وب سرور برقرار شده میتواند برای ارسال چندین درخواست و دریافت چندین پاسخ استفاده شود. در نتیجه نیاز به برقراری اتصالی جدید برای هر درخواست از بین میرود. HTTP/1.1 از مولتیپلکسینگ پشتیبانی نمیکند.
اتصالات رمزنگاریشده سریعتر
HTTP/2 از افزونه جدید ALPN بهرهمند شده که اتصالات رمزنگاریشده سریعتر را ممکن میکند، چرا که پروتکل اپلیکیشن حین برقراری نخستین ارتباط تعیین میشود. هنگام کار با HTTP/1.1 که از ALPN بهرهمند نیست، دستدهی رمزنگاری (Encryption Handshake) نیاز به جابهجایی هرچه بیشتر داده خواهد داشت.
معایب HTTP2 چیست ؟
اگرچه HTTP/2 بهبودهای فراوان نسبت به HTTP/1.1 پدید آورده، همچنان محدودیتهای خاص خود را نیز دارد. برای درک عمیقتر HTTP/2 لازم است این معایب را بشناسیم. ناگفته نماند که بسیاری از این معایب در HTTP/3 برطرف شدهاند.
نهچندان مدرن یا سریع
پروتکل HTTP/2 باید همواره با HTTP/1.1 سازگار باقی بماند و این موضوع، میزان مدرنسازی آن را تحت تاثیر قرار داده است. مهمترین ایرادات در پرفورمنس HTTP/2 را در ادامه لیست کردهایم:
- این پروتکل از مشکل «مسدود شدن سر صف» (Head-of-Line Blocking | HOL Blocking) در لایه TCP رنج میبرد که میتواند بر پرفورمنس شبکههای ناپایدار تاثیر بگذارد. HTTP/3 با استفاده از QUIC این مشکل را حل کند که پروتکلی متکی بر UDP است.
- در صورت گم شدن پکتها (Packets)، پروتکل HTTP/2 نیاز به برقراری دوباره و کامل اتصال خواهد داشت. HTTP/3 که بر فونداسیون QUIC ساخته شده، سرعت بازیابی اتصال را بالا میبرد و به اتصالات اجازه مهاجرت در میان شبکههای گوناگون میدهد.
- HTTP/2 معمولا به چند «رفت و برگشت» (Round Trip) در شبکه نیاز دارد تا دستدهی TLC انجام شود. این ساختار برقراری اتصال اولیه را کند میکند. HTTP/3 مدتزمان این فرایند را کاهش میدهد و اساسا نیاز به رفت و برگشت کمتری دارد تا ارتباطی امن برقرار کند.
- پروتکل HTTP/2 میتواند در محیطهایی که پکت لاس (Packet Loss) بالا دارند – مخصوصا شبکههای موبایل و ماهوارهای – با مشکلات پرفورمنس روبهرو شود. HTTP/3 بهگونهای طراحی شده که این دست از سناریوهای چالشبرانگیز را بهبود میبخشد.
در مجموع باید گفت اکثر مختصصان انتظار داشتند شاهد قابلیتهای جدید بیشتری در HTTP/2 باشیم، اما بسیاری از این انتظارات برآورده نشد. دلیل سادهای هم برای این اتفاق وجود دارد: HTTP/2 باید با نسخه قدیمیتر HTTP/1.1 سازگار باقی میماند. ناگفته نماند که برخی قابلیتهای جدید HTTP/2 مانند فشردهسازی هدرهای صفحه نیز در برابر حملات BREACH و CRIME آسیبپذیر ظاهر میشوند.
عدم ضرورت رمزنگاری
سالها پیش، رمزنگاری داده عمدتا به تراکنشهای مالی محدود میشد. اما با افزایش شمار حملات سایبری و همینطور نظارت دولتی، محافظت از حریم شخصی کاربران و کسبوکارها از همیشه مهمتر شده است. درحالی که رمزنگاری میتواند به محافظت در برابر این نوع از تهدیدها کمک کند، عدم توافق نظر در تیم توسعه HTTP/2 باعث شد که تصمیم به عدم تغییر سیستم رمزنگاری نسبت به HTTP/1.1 بگیرند.
این یعنی صاحبان وبسایتها همچنان ممکن است به سراغ تدابیر امنیتی سطح پایینتر بروند و کاربران را در معرض خطر قرار دهند. البته سازندگان مرورگرهای وب میتوانند این مشکل را به نوعی حل کنند. در حال حاضر اکثر مرورگرها تنها زمانی HTTP/2 را فعال میکنند که پروتکلهای SSL/TLS در دسترس باشند. در HTTP/3 نیز رمزنگاری در سطح پروتکل اجباری نیست، اما از آنجا که از پروتکل QUIC بهره میبرد، انبوهی قابلیت امنیتی سختگیرانهتر دارد که در گذر زمان، رمزنگاری را به رویکردی استاندارد تبدیل میکنند.
بیشتر بخوانید: ssl چیست و چه کاربردی دارد؟ + انواع گواهی SSL
امنیت کوکیها
پروتکل HTTP/2 آسیبپذیریهای ذاتی کوکیها (کوکی چیست) را از بین نبرده است. برای مثال میشود به آسیبپذیری کوکیها در برابر حملات Cross-Site Scripting (یا XSS) اشاره کرد. به خاطر نیاز به سازگاری با نسخههای قبلی، این مشکل کماکان به قوت خود باقیست. از سوی دیگر، اگرچه HTTP/3 این مشکل را به صورت بنیادین حل نکرده، اما پرفورمنس و قابلیتهای امنیتی را به گونهای بهبود داده که میتوانند به شکلی موثرتر با حملات متمرکز بر کوکیها مقابله کنند.
علیرغم این معایب، HTTP/2 همچنان کاربرد گستره دارد و روی اکثر مرورگرها و سرورها پشتیبانی میشود. HTTP/3 هم اگرچه بهبودهای قابل توجه – بهخصوص در وضعیتی که شبکه ناپایدار است – به همراه میآورد، هنوز نیاز به فراگیری هرچه بیشتر دارد.
انتخاب میان این پروتکلها بستگی به نیازها و محیط شبکه دارد. در برخی سناریوها، HTTP/2 بهترین انتخاب به حساب میآید، مثلا زمانی که نیاز به سازگاری گسترده با سیستمهای قدیمی دارید یا زمانی که مشغول کار در محیطی هستید که از UDP (و به تبع آن HTTP/3) پشتیبانی نمیکند.
روش استفاده از HTTP2 چیست و چگونه است؟
اگر کاربر سمت کلاینت هستید، برای استفاده از HTTP/2 صرفا باید مرورگرتان را به آخرین نسخه بهروزرسانی کنید. اکثر مرورگرهای معتبر از HTTP/2 پشتیبانی میکنند. اگر کاربر سمت سرور باشید، فرایند ارتقا به HTTP/2 اندکی پیچیدهتر است. در ادامه راهنمایی کوتاه برای محیطهای سرور گوناگون ارائه میکنیم تا ذهنیتی کلی از فرایندها به دست آورید.
Apache
برای شروع به سراغ محبوبترین سیستم عامل سرور و وبسرور کنونی میرویم: آپاچی همراه با لینوکس اوبونتو. سایر پیکربندیها ممکن است نیازمند پشت سر گذاشتن مراحل متفاوت باشند. برای مثال کار با پلتفرم Microsoft IIS معمولا به مهندسان DevOps ماهر واگذار میشود. اما برای فعالسازی HTTP/2 روی هر سایتی در Apache صرفا باید ماژولی بهخصوص نصب کنید.
بیشتر بخوانید: اوبونتو چیست؟ + انواع، کاربردها و ویژگیهای Ubuntu
پیش از هر چیز، Apache نسخه ۲.۴.۱۷ یا جدیدتر را روی سرور نصب کنید. نصب ماژول HTTP/2 برای Apache نیز در سه گام ساده امکانپذیر میشود.
- ابتدا مخزن را Add میکنیم:
sudo add-apt-repository ppa:ondrej/apache2
- سپس Apache2 را در این مخزن آپدیت میکنیم تا آخرین ماژولها دریافت شوند:
sudo apt-get update sudo apt-get upgrade apache2
- در نهایت پروتکل HTTP/2 به عنوان ماژولی برای Apache فعال میشود:
sudo a2enmod http2
حالا باید HTTP/2 را برای هاست مجازی خود فعال کنیم. برای شروع فایل conf. را روی هاست مجازی باز میکنیم تا شاهد چنین چیزی باشیم:
<virtualhost 192.168.1.1:443=""></virtualhost> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLCertificateFile /etc/ssl/star.example.com.crt SSLCertificateKeyFile /etc/ssl/star.example.com.key ServerName "one.example.com" DocumentRoot "/var/www/html/one" Protocols h2 http/1.1 CustomLog "/var/log/httpd/one-access.log" combined ErrorLog "/var/log/httpd/one-error.log" <directory var="" www="" html=""></directory> AllowOverride none Require all granted </Directory> </VirtualHost>
- حالا این خط را هرجایی در بخش VirtualHost قرار میدهیم:
Protocols h2 http/1.1
- فایل را ذخیره میکنیم، میبندیم و ریاستارت کردن سرویس Apache2 را نیز از یاد نمیبریم:
service apache2 restart
- اگر تمام مراحل را به درستی پشت سر بگذارید، پروتکل HTTP/2 شروع به کار خواهد کرد.
- برای بررسی فعال بودن HTTP/2 میتوانید از ابزارهای آنلاین گوناگون مانند KeyCDN HTTP/2 Test کمک بگیرید.
Nginx
در ادامه راهنمای گامبهگام و کوتاه فعالسازی HTTP/2 روی Nginx را هم بررسی میکنیم. اگر میخواهید در مورد وب سرور Nginx بیشتر بدانید پیشنهاد میکنم مقاله “nginx چیست و چگونه کار میکند؟” را بخوانید.
- نسخه ۱.۹.۵ و جدیدتر Nginx از HTTP/2 پشتیبانی میکنند. برای بررسی نسخه Nginx از این فرمان کمک بگیرید:
nginx -v
- اگر نسخهای قدیمیتر دارید، لازم است Nginx را بهروزرسانی کنید. برای نصب یا بهروزرسانی Nginx، از ابزار پکیج منیجر کمک بگیرید. برای مثال در اوبونتو از این فرمان استفاده میکنیم:
sudo apt update sudo apt install nginx
- فایل پیکربندی Nginx را روی سایت خود باز کنید. این فایل را معمولا در آدرس /etc/nginx/sites-available/ یا /etc/nginx/conf.d/ پیدا میکنید.
- دستورالعمل Listen را تغییر دهید تا HTTP2 را هم در بر بگیرد. بلوک سرور شما باید چنین شمایلی داشته باشد:
} server ; listen 443 ssl http2 ; server_name example.com ; ssl_certificate /path/to/certificate.crt ; ssl_certificate_key /path/to/certificate.key ... other SSL settings# ... rest of your server configuration# {
- پیش از اینکه Nginx را دوباره بارگذاری کنید، پیکربندی را تست کنید تا مطمئن شوید خطایی در سینتکس وجود ندارد:
sudo nginx -t
- اگر تست پیکربندی موفقیتآمیز بود، Nginx را دوباره بارگذاری کنید تا تغییرات اعمال شوند:
sudo systemctl reload nginx
- حالا میتوانید با استفاده از ابزارهای توسعهدهنده در مرورگر وب یا ابزارهای آنلاین مثل KeyCDN HTTP/2 Test، فعال بودن HTTP/2 را بررسی کنید.
تست و ایرادیابی HTTP/2
حالا که میدانیم HTTP2 چیست و تمام دانستنیهای پیرامون آن را هم بررسی کردهایم، در بخش پایانی به نحوه تست و ایرادیابی HTTP/2 با استفاده از چند مرورگر محبوب میپردازیم.
در گوگل کروم
- به سراغ ابزارهای توسعهدهنده (Developer Tools) بروید و دکمههای Ctrl + Shift + I (روی ویندوز و لینوکس) یا دکمههای CMD + Option + I (روی مک) را فشار دهید. سپس روی زبانه Network کلیک کنید.
- حالا روی هدر جدول راستکلیک و ستون Protocol را انتخاب کنید.
- بدون بستن ابزارهای توسعهدهنده، صفحه را ریفرش کنید. ستون سوم حالا به شما نشان میدهد که کدام منابع از طریق پروتکل HTTP/2 بارگذاری شدهاند.
در فایرفاکس و اج
- دکمههای Ctrl + Shift + I (در ویندوز و لینوکس) یا CMD + Option + I (در مک) را فشار دهید تا Developer Tools باز شود.
- روی زبانه Network کلیک کنید.
- روی ردیف هدر در زبانه Network راستکلیک و گزینه Protocol را انتخاب کنید تا نمایان شود (برای مشاهده ردیف Header ممکن است نیاز به بارگذاری دوباره صفحه داشته باشید).
- با فشرده دکمه F5 یا کلیک روی دکمه Reload در مرورگر، صفحه را مجددا بارگذاری کنید.
- حالا به ستون Protocol نگاه کنید. اگر عبارت HTTP/2 به نمایش درآمده باشد، سایت در حال استفاده از این پروتکل است.
در Safari
- مرورگر سافاری را باز کنید و اگر پیشتر چنینکاری نکردهاید، Developer Tools را فعال کنید. (برای این کار به Settings، سپس Advanced بروید و گزینه Show Feature for Web Developers را فعال کنید).
- در نوار منو، روی گزینه Develop کلیک و بعد Show Web Inspector را انتخاب کنید.
- روی زبانه Network کلیک کنید.
- روی ردیف Header در زبانه Network راستکلیک و گزینه Protocol را انتخاب کنید تا نمایان شود.
- با فشردن دکمههای CMD + R یا دکمه Reload در مرورگر، صفحه وب را مجددا بارگذاری کنید.
- حالا به دنبال ستون Protocol بگردید. اگر عبارت h2 به نمایش درمیآید، سایت در حال استفاده از HTTP/2 است.
جمعبندی
در نهایت باید گفت که تصمیمگیری راجع به استفاده یا عدم استفاده از HTTP/2 کاملا به صاحبان وبسایتها بستگی دارد، اما HTTP/2 بدون تردید گزینهای محبوب و موثر برای وب اپلیکیشنها و سایتهای مدرنتر به حساب میآید. در این مطلب گفتیم HTTP2 چیست و چه ویژگیهای گوناگونی دارد. اگر هنوز سوالاتی بیپاسخ راجع به این پروتکل دارید، در ادامه به برخی از پرتکرارترین سوالات جواب میدهیم.
سوالات متداولی که شما میپرسید؟
1. چرا هنوز بسیاری از سایتها از HTTP/2 استفاده نمیکنند؟
این موضوع میتواند دلایل متعدد داشته باشد. پیش از هر چیز، پیادهسازی HTTP/2 برای سازمانهایی که زیرساخت عظیم دارند، هزینهبر و پیچیده به حساب میآید. علاوه بر این، پیادهسازی صحیح HTTP/2 نیز نیازمند اندکی دانش فنی خواهد بود. در نهایت، برخی مرورگرهای قدیمیتر هم ممکن است با پروتکل HTTP/2 سازگار نباشند و به تجربه کاربران آسیب بزنند.
2. بهترین ابزارهای اعتبارسنجی HTTP2 چیست؟
این روزها ابزارهای آنلاین گوناگونی داریم که به شما اجازه میدهند استفاده یا عدم استفاده از پروتکل HTTP/2 را در وبسایتها و وب اپلیکیشنها بسنجید. به عنوان مثال میتوانید از این ابزارها کمک بگیرید:
- ایزار KeyCDN HTTP/2 Test
- ابزار LambdaTest
- ابزار Qualys SSL Labs Server
منبع: