مقدمهای بر مفاهیم HTTP
ممکن است بارها در طول کار با وب و طراحی سایتها به مفهوم HTTP برخورد کرده باشید. HTTP یا همان پروتکل انتقال ابر متن، یکی از مهمترین و پایهایترین پروتکلهایی است که در تبادل اطلاعات در وب به کار میرود. این پروتکل به شما اجازه میدهد تا درخواستهایی به سرور ارسال کنید و متقابلاً پاسخهایی دریافت کنید. به طور کلی، هر چه درباره مرورگرها، سرورها و نحوه ارتباط آنها با یکدیگر بیشتر بدانید، بهتر میتوانید بهینهسازی و توسعه وبسایتها و برنامههای وب را انجام دهید.
فیلدهای زمینهای درخواست در HTTP
یکی از بخشهای مهم در پروتکل HTTP، فیلدهای زمینهای درخواستها هستند. این فیلدها شامل اطلاعاتی درباره خود درخواست و شرایطی که در آن انجام میشود، است. فیلدهای زمینهای درخواست شامل فیلدهایی مثل روش درخواست، URL، هدرها و موارد دیگر است که اطلاعات مفیدی درباره وضعیت درخواست ارائه میدهد.
فیلدهای مهم در درخواستهای HTTP
در قسمت بالاتر توضیح دادیم که فیلدهای زمینهای درخواست حاوی اطلاعات مهمی هستند که هنگام ارسال درخواست به سرور به کار گرفته میشوند. این فیلدها به سرور کمک میکنند تا تشخیص دهد چگونه پاسخ مناسب را برای مشتری ارسال کند. از مهمترین این فیلدها میتوان به فیلد Cookie، User-Agent و Accept اشاره کرد که هرکدام نقش مخصوص به خود را ایفا میکنند.
چگونه فیلدهای زمینه درخواست در بهبود عملکرد وبسایت تاثیرگذارند؟
شناخت و استفاده صحیح از فیلدهای زمینهای درخواست میتواند به شما کمک کند تا عملکرد وبسایت خود را به شکل قابل توجهی بهبود ببخشید. مثلاً هدرهای مربوط به کشینگ و فشردهسازی دادهها در این فیلدها میتوانند موجب کاهش پهنای باند مصرفی و افزایش سرعت بارگذاری صفحات شوند.
GET / HTTP/1.1
Host: www.example.com
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
توضیح خط به خط کد درخواست HTTP
GET / HTTP/1.1
این خط نوع درخواست و نسخه پروتکل را مشخص میکند.
Host: www.example.com
این خط نام دامنه سرور را که به آن درخواست ارسال میشود، مشخص میکند.
Accept: */*
این خط تنظیم میکند که همه نوع محتوایی توسط کلاینت قابل پذیرش است.
User-Agent: Mozilla/5.0...
این خط حاوی اطلاعاتی درباره مرورگر و سیستم عامل کاربر است.
Accept-Encoding: gzip, deflate, br
این خط فشردهسازیهای قابل پذیرش توسط کلاینت را مشخص میکند.
Connection: keep-alive
این هدر نشان میدهد که آیا ارتباط باید پس از پاسخ سرور باز نگه داشته شود یا خیر.