HTTP مخفف کلمه Hyper Text Transfer Protocol به معنی قرارداد انتقال ابر متن می باشد و اصطلاحا به پروتکلیHTTP گفته می شود که برای ایجاد ارتباط، دریافت، و ارسال داده ها بین سرور و کلاینت استفاده می شود.
زمانیکه با استفاده از HTTP صفحه های وب سایت را مرور می کنیم و با هر آدرس URL که از طریق مرورگر خود از سرور سایت های گوناگون درخواست می کنیم کدهایی در پس زمینه بین مرورگر ما و سرور انتقال می یابد که به آنها در اصطلاح کدهای وضعیت HTTPمی گویند.
HTTP زبان نشانه گذاری ابر متن می باشد که توسط فیزیکدانی به نام تیم برنرز لی در سال 1990 پایه گذاری شد که برای ایجاد صفحه های تحت وب و اولین سایت های اینترنتی ایجاد شد.
* نکته جالب اینجاست که تا سال 2017 اغلب سایت ها همچنان روی http بودن و کم کم همه مهاجرت کردن به https
کدهای وضعیت HTTP عبارتند از:
- 200 OK: درخواست موفقیتآمیز بوده است.
- 400 Bad Request: درخواست نادرست است.
- 401 Unauthorized: کاربر مجاز به دسترسی به منبع نیست.
- 403 Forbidden: کاربر مجاز به دسترسی به منبع نیست.
- 404 Not Found: منبع مورد نظر یافت نشد.
هدرهای HTTP میتوانند برای ارسال اطلاعات اضافی در مورد درخواست یا پاسخ استفاده شوند. برخی از هدرهای مهم HTTP عبارتند از:
- Host: این هدر آدرس IP یا نام دامنه سرور را مشخص میکند.
- Content-Type: این هدر نوع محتوای پاسخ را مشخص میکند.
- Content-Length: این هدر طول محتوای پاسخ را مشخص میکند.
HTTP یک پروتکل اساسی در اینترنت است که برای انتقال دادهها بین کلاینتها و سرورها استفاده میشود. این پروتکل برای بسیاری از برنامههای کاربردی وب، مانند مرورگرهای وب، سرورهای وب و سرویسهای شبکهای، ضروری است.
فهرست موضوعات در این آموزش
جزییات بیشتر HTTP
زمانیکه از پروتکل Handshaking برای ارسال و دریافت داده ها استفاده می کنید. در Handshaking برای شروع و پایان عملیات دریافت و ارسال بسته های اطلاعاتی بین سرور و کلاینت، سوالاتی از مقصد پرسیده می شود. مثلا کلاینت A می خواهد از سرور B داده ای را دریافت کند. برای این کار می بایست A در ابتدا درخواستی را به B بفرستد تا از آماده بودن B برای اینکه ارسال را انجام دهد مطلع شود. در این مدت A صبر میکند تا از جانب B پاسخی دریافت نماید. پس از آنکه B آمادگی خود را به A اعلام کرد A پیام را برای B فرستاده و از آن می خواهد تا داده اطلاعاتی را بفرستد. B پیام ارسالی را دریافت کرده و اطلاعات را آماده می کند و به بسته های کوچکتر تقسیم کرده و توسط Handshaking آنها را پشت سر هم و به ترتیب ارسال می کند.
این نکته را در نظر داشته باشید که پروتکل TCP/IP که در پروتکل HTTP مورد استفاده است امنیت داد و تضمین ارسال آن را کاملا بر عهده دارد. این پروتکل بر روی لایه هایی قرار دارد و معماری این پروتکل بصورت چند لایه است.
در این آموزش سعی شده به صورت کامل به موضوعات پروتوکول http پرداخته بشه، بازم در همین خصوص سئوال داشتید همینجا می تونید مطرح کنید. برای قرار گرفتن در صفحه اول گوگل باید با عوامل زیادی آشنا شد که یکیش تفاوت های http , https هست.
متدهای HTTP
HTTP دارای متدهای گوناگونی می باشد که در زیر به چند نمونه از متدهای HTTP اشاره ای کوتاه خواهیم کرد.
- متد GET یکی از متدهای HTTP می باشد که درخواست ارائه منبعی خاص را صادر می کند. درخواست هایی که از GET استفاده می کنند، می بایست تنها داده را بازیابی کنند و نباید اثر دیگری داشته باشند.
- متد HEAD نیز مانند متد GET دنبال پاسخ است اما بدون Response body و با توجه به این موضوع که در متد HEAD احتیاج به انتقال تمام محتوا نیست روش مناسبی برای بازیابی اطلاعات هدر پاسخ (Response header) است.
- POST متدی است که درخواست می کند که سرور موجودیت موجود در درخواست را به عنوان بخش جدیدی از منبعی که در URI مشخص شده است، بپذیرد.
- متد PUT نوع دیگری از متد HTTP است که موجودیت موجود درخواست در URI معرفی شده، ذخیره شود. که اگر URI به منبعی که در حال حاضر موجود است، ارجاع شود، این منبع به روز می شود و اگر URI به منبعی که وجود ندارد، اشاره کند، سرور می تواند منبعی را برای آن URI بسازد.
- متد DELETE متدی است که منابع مشخص را پاک می کند.
- TRACE درخواست دریافت شده را منعکس می کند.
- متدهایی که سرور برای یک URL خاص پشتیبانی می کند را متد OPTIONS می گویند. این متد برای بررسی عملکرد وب سرور، بجای استفاده از منابعی خاص، از ‘*’ استفاده کرد.
- CONNECT متدی است که اتصال درخواست را به کانال TCP/IP تبدیل می کند و برا یآسان کردن ارتباط بین SSL رمز گذاری شده (HTTPS) و پروکسی HTTP بدون رمز به کار می رود.
- PATCH تغیرات جزئی را روی یک منبع اعمال می کند.
درخواست و پاسخ های مبتنی بر پروتکل HTTP
همان گونه که میدانید ارتباط بین سرویس دهنده و سرویس گیرندهها را درخواستهای http انجام میدهند. اما سوالی که مطرح میشود این است که مراحل ارسال درخواست به چه صورت انجام میشود؟ در ادامه مطلب به طور مختصر این مراحل را شرح داده ایم:
- سرویس گیرنده به عنوان مثال یک مرورگر، درخواست http را به سمت وب ارسال میکند.
- سپس سرور مورد نظر، درخواست را دریافت میکند.
- سرور نرمافزاری را جهت پردازش و تجزیه و تحلیل درخواست دریافت شده، اجرا خواهد کرد.
- در مرحله بعد سرور پاسخ درخواست را از با کمک پروتکل http به همان سرویسگیرنده ارسال میکند.
- در نهایت سرویسگیرنده، پاسخ را دریافت خواهد کرد.
در ادامه مطلب شما را با این موضوع که HTTP چه چیزهایی را میتواند کنترل کند، آشنا خواهیم کرد:
- کش کردن
- رهایی از قید Origin
- احراز هویت
- پروکسی و تونلینگ
- نشستها
منظور از Hypertext یا ابرمتن چیست؟
یکی از سوالات رایجی که برای اغلب برای کاربران پیش میآید این است که کلمه Hypertext به چه معنا است. در این خصوص باید بگوییم که Hypertext یا به اختصار ابر متن یک نمونه متن طولانی و بزرگ است که به صورت HTML نوشته شده است. نکته حائز اهمیت در مورد Hypertext این است که برخلاف این موضوع که تمامی کدهای تولید شده تنها به صورت متنی هستند، الزاما بعد از پردازشی که بوسیله مرورگر انجام میشود، به شکل متن نخواهند بود.
یک سند از نوع HTML قادر است که دارای انواع تصویر، ویدئو، جدول، لینک و… باشد. چنان چه تا کنون نتوانستهاید که این موضوع را آن طور که باید، درک کنید کافی است یک نگاه به ابر متن بیاندازید. برای مثال و درک بهتر این موضوع، صفحه نخست سایت سون لرن را در نظر بگیرید، آن چه مشاهده میکنید یک عدد صفحه شکیل و زیبا با اجزای متفاوتی از جمله تصویر، متن، کادربندی و… میباشد. اما چنان چه قصد داشته باشید پشت صحنه این صفحه وب را نیز مشاهده کنید، کافی است با مرورگر خود (برای مثال مرورگر کروم و…) روی صفحه مورد نظر کلیک راست کرده و سپس روی گزینه Inspect کلیک کنید. آنچه الان میبینید یک Hypertext است.
در خصوص انواع پروتکل در طراحی سایت ها مطالعه مقالات زیر به شما پیشنهاد می شود:
6 Comments
سلام راجب
پروتکل http چه نقشی در یک URL دارد؟ نحوه عملکرد پروتکل http به چه صورت می باشد هم توضیح بیشتری بدید
سلام من اصلا راجب متد ها چیز زیادی نمیدونم و خیلی هم به مشکل خوردم خصوصا در باره ی http شامل GET و POST و PUT و DELETE
خیلی مشکل دارم میشه راهنماییم کنید.
می شه عنوان کنید که پروتکل Handshaking در کجا استفاده می شود؟
سلام مرسی از سئو ایران بابت مطالب عالی و آموزنده، میشه کمی بیشتر در رابطه با متد HEAD صحبت کنید.
با تشکر از پیج خوبتون
امکانش هست در مورد کد های http هم توضیحی داده شود؟
تشکر
https چی تفاوتی با http دارد و چه تاثیری بر روی سئو دارد؟