پروتکل انتقال ابرمتن: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
بدون خلاصۀ ویرایش |
افزودن قسمت جلسه و روش های درخواست. |
||
خط ۲۲:
نسخهٔ ۱٫۱ این پروتکل برخلاف نسخهٔ ۱٫۰ قابلیت استفاده از یک اتصال {{به انگلیسی|Connection}} برای چندین درخواست را دارد. مثلا میتواند عکسها، فایلهای اسکریپت و … موجود در یک صفحه را با همان اتصال اولیه دریافت کند. لذا سرعت آن به دلیل حذف شدن برقراری ارتباط مجدد TCP نسبت به نسخهٔ ۱٫۰ افزایش یافته است.
==
در پروتکل انتقال ابرمتن به دنبالهای از درخواستها و پاسخها جلسه {{به انگلیسی|Session}} گفته میشود. کلاینت با ایجاد یک اتصال [[قرارداد هدایت انتقال|هدایت انتقال (TCP)]] بر روی یک درگاهِ از پیش تعیین شده بر روی سرور ( معمولا درگاه شماره ۸۰؛ [[فهرست عددهای درگاه تیسیپی و یودیپی]] )، جلسه را آغاز میکند. سرور وب همواره بر روی درگاه در انتظار درخواستهای کلاینتها میباشد. بعد از دریافت درخواست ارسال شده، سرور با ارسال یک خط وضعیت {{به انگلیسی|Status Line}} و بدنه، پاسخ کلاینت را به او بازمیگرداند. بدنه بستهٔ پاسخ معمولاً حاوی منبع درخواست شده است؛ با این حال از آن برای ارسال خطا و اطلاعات دیگر نیز استفاده میشود.<ref name="rfc_2616" />
پروتکل انتقال ابرمتن یک پروتکل Stateless میباشد. بدین معنی که در یک سری از درخواست های ارسال شده به سمت سرور، هیچ ردی از کاربر ذخیره نمیکند. به طور مثال، ''سرور وب هیچگاه نمی تواند به یاد بیاورد که شما در این وبسایت لاگین کردهاید یا نه!'' اما به دلیل نیاز شدید نرمافزار های تحت وب به ثبت وضعیت، این مساله به روشهای زیر پیادهسازی شده است:▼
یک نمونه از ''خط وضعیت'' در پاسخ به یک درخواست مجاز:
{{چپچین}}
HTTP/1.1 200 OK
{{پایان چپچین}}
=== روشهای درخواست ===
پروتکل انتقال ابرمتن روشهایی را برای درخواست تعریف کرده است {{به انگلیسی|Request Method}}که هر کدام از آنها باعث انجام عمل خاص در سمت سرور میشوند. نسخهٔ ۱٫۰ روشهای درخواست GET، POST و HEAD را دارا بود.<ref name="rfc_1945">{{یادکرد وب |نویسنده = |نشانی= http://tools.ietf.org/html/rfc1945|عنوان= RFC 1945 - HTTP/1.0| ناشر = [[نیروی ضربت مهندسی اینترنت]]}}</ref><sup>[بخش ۸]</sup>
در نسخهٔ ۱٫۱ پنج روش جدید افزوده شد<ref name="rfc_2616" /><sup>[بخش ۹]</sup>: OPTIONS، PUT، DELETE، TRACE و CONNECT. از آنجایی که عملکرد این روشها به طور کامل تعریف و شرح داده شده است، لذا تمامی [[مرورگر|مرورگر ها]] و سرور ها به راحتی میتوانند این روشها را پیادهسازی و استفاده نمایند. اگر روشی از برای سرور تعریف نشده باشد، با آن به عنوان یک روش غیرِامن برخورد خواهد کرد. در تعداد روشها هیچ محدودیتی وجود ندارد. این نکته باعث میشود که گسترش احتمالی این پروتکل در آینده به زیرساختها فعلی آن آسیبی نرساند و آنها را تغییر ندهد. برای مثال در حال حاضر [[پروتکل WebDAV]] هفت روش جدید درخواست را تعریف کرده است. <ref name="rfc_5789">{{یادکرد وب |نویسنده = |نشانی= http://tools.ietf.org/html/rfc5789|عنوان= RFC 5789 | ناشر = [[نیروی ضربت مهندسی اینترنت]]| تاریخ= مارچ ۲۰۱۰}}</ref>
; '''GET''': درخواست نمایش منبعِ درخواستدادهشده را میدهد. (این منبع معمولا یک [[پرونده (رایانه)|فایل یا پرونده]] میباشد.) این روش فقط اطلاعات را از سرور دریافت میکند و نباید هیچ تاثیری بر روی منابع سرور بگذارد.
; '''HEAD''': این روش دقیقا مانند روش GET عمل میکند ''با این تفاوت که بدنه پاسخ را نمیخواهد''. از این روش برای بهدستآوردن [[فراداده|فرادادههای]] موجود در سرآیند {{به انگلیسی|Header}} استفاده میشود. یکی از استفادههای رایج این نوع درخواست، بررسی تغییر یافتن یک منبع است.
; '''POST''': در این روش به همراه بستهٔ درخواست اطلاعاتی نیز فرستاده میشود. سرور با توجه به [[نشانی وب|نشانی وب (URL)]] درخواست شده و اطلاعات ارسال شده، منبع مورد نظر را در بستهٔ پاسخ برمیگرداند. این اطلاعات ارسالی میتواند نامِکاربری و کلمهٔعبور، یک نظر بر روی یک مطلب و یا اطلاعات هر فرم دیگری که توسط کاربر وارد شده است، باشد.<ref name="rfc_2616"/><sup>[بخش ۹٫۵]</sup>
; '''PUT''': در این روش منبعی به همراه بستهٔ درخواست ارسال شده و از سرور تقاضا میشود که این منبع را در [[یوآرآی|آدرس]] موجود در بسته [[بارگذاری]] کند. اگر در محلِ درخواست شده قبلا منبع دیگری قرار داشته باشد، منبع جدید جایگزین خواهد شد.
; '''DELETE''': از سرور درخواست میکند که [[یوآرآی|آدرس]] فرستاده شده را حذف نماید.
; '''TRACE''': در این روش سرور اطلاعات ارسال شده را ''عیناً'' به کلاینت باز میگرداند. (برای بررسی تغییراتی که واسطهای شبکه بر روی بسته میگذارند، از این روش استفاده میشود.)
; '''OPTIONS''': از سرور تقاضا میکند تا روشهای درخواستِ {{به انگلیسی|Request Method}} موجود برای [[نشانی وب|نشانی]] فرستاده شده را اعلام نماید. برای گرفتن تمامی روشهای درخواست قابل اجرا بر روی سرور میتوان از نشانی '*' استفاده کرد.
; '''CONNECT''': بستهٔ پروتکل ابرمتن را به یک تونل TCP/IP تبدیل میکند. این عمل معمولاً برای برقراری ارتباط امن ([[پروتکل امن انتقال ابرمتن|HTTPS]]) بر روی یک [[پراکسی سرور]] ناامن استفاده میشود.<ref>{{یادکرد وب |نویسنده = |نشانی= http://tools.ietf.org/html/rfc2817|عنوان= RFC 2817 - Upgrading to TLS Within HTTP/1.1"| ناشر = [[نیروی ضربت مهندسی اینترنت]]|تاریخ= سال ۲۰۰۰}}</ref>
; '''PATCH''': این روش که در سال ۲۰۱۰ به پروتکل افزوده شد، برای ایجاد تغییرات جزیی بر روی منابع استفاده میشود.<ref name="rfc_5789" />
سرورهای وب موظف هستند حداقل روشهای GET و HEAD را پیادهسازی نمایند.<ref name="rfc_2616" /><sup>[بخش ۵٫۱٫۱]</sup>
=== وضعیت جلسه ===
▲پروتکل انتقال ابرمتن یک پروتکل Stateless میباشد. بدین معنی که سرور در یک
* [[کوکی اچتیتیپی|کوکی]]
* استفاده از متغیر های پنهان در فرمهای وب
|