متدهای HTTP و کدهای وضعیت چیست؟ معرفی کامل و کاربردی

متدهای HTTP و کدهای وضعیت چیست؟ معرفی کامل و کاربردی

در ارتباط HTTP، کلاینت باید مشخص کند که چه کاری از سرور می‌خواهد. برای مثال، ممکن است بخواهد اطلاعاتی را دریافت کند، اطلاعات جدیدی ثبت کند یا یک منبع را حذف کند. متدهای HTTP نوع این عملیات را مشخص می‌کنند.

سرور نیز پس از دریافت و بررسی درخواست، نتیجه را در قالب یک پاسخ برمی‌گرداند. کد وضعیت HTTP بخشی از این پاسخ است و مشخص می‌کند که درخواست موفق بوده، به اقدام دیگری نیاز دارد یا با خطا روبه‌رو شده است. در قسمت سوم دوره آموزش پروتکل HTTP، با مفهوم HTTP Method و Status Code آشنا می‌شویم. سپس متدهای GET، POST، PUT و DELETE و کدهای وضعیت پرکاربرد مانند 200، 404 و 500 را بررسی می‌کنیم.

متد HTTP چیست؟

متد HTTP یا HTTP Method نوع عملی را مشخص می‌کند که کلاینت می‌خواهد روی یک منبع انجام دهد. این منبع می‌تواند یک صفحه، محصول، کاربر، مقاله، فایل یا هر نوع اطلاعات دیگری باشد.

هر درخواست HTTP یک متد دارد. سرور با بررسی این متد متوجه می‌شود که هدف درخواست چیست. برای مثال، یک درخواست ممکن است برای دریافت فهرست محصولات ارسال شود و درخواست دیگری برای ثبت یک محصول جدید باشد. متدهای HTTP مختلفی وجود دارند که از میان آن‌ها می‌توان به موارد زیر اشاره کرد:

  • GET: دریافت اطلاعات از سرور
  • POST: ارسال و ثبت اطلاعات جدید
  • PUT: به‌روزرسانی یا جایگزینی اطلاعات موجود
  • DELETE: حذف یک منبع
  • PATCH: تغییر بخشی از اطلاعات یک منبع
  • HEAD: دریافت هدرهای پاسخ بدون محتوای اصلی
  • OPTIONS: بررسی روش‌های ارتباطی پشتیبانی‌شده

در این قسمت بیشتر روی چهار متد پرکاربرد GET، POST، PUT و DELETE تمرکز می‌کنیم.

متد GET چیست؟

از متد GET برای دریافت اطلاعات از سرور استفاده می‌کنیم. زمانی که صفحه‌ای را در مرورگر باز می‌کنید، مرورگر معمولاً یک درخواست GET برای دریافت محتوای آن صفحه ارسال می‌کند.

برای مثال، یک فروشگاه اینترنتی می‌تواند با درخواست زیر اطلاعات محصول شماره 25 را از سرور دریافت کند:

GET /products/25

این درخواست از سرور می‌خواهد اطلاعات محصولی با شناسه 25 را برگرداند. سرور پس از پیدا کردن محصول، اطلاعات آن را در پاسخ قرار می‌دهد. متد GET در موقعیت‌های مختلفی کاربرد دارد:

  • دریافت یک صفحه از سایت
  • دریافت فهرست محصولات
  • مشاهده اطلاعات یک کاربر
  • دریافت مقاله‌های سایت
  • جست‌وجو و فیلترکردن اطلاعات
  • دریافت اطلاعات از API

درخواست GET باید برای خواندن اطلاعات استفاده شود و نباید تغییری در منبع ایجاد کند. برای مثال، مشاهده یک محصول نباید باعث ویرایش یا حذف آن شود.

متد POST چیست؟

از متد POST معمولاً برای ارسال اطلاعات به سرور و ایجاد یک منبع جدید استفاده می‌کنیم. اطلاعات فرم‌ها نیز در بسیاری از موارد با این متد برای سرور ارسال می‌شوند. برای مثال، درخواست زیر می‌تواند برای ثبت یک محصول جدید ارسال شود:

POST /products

اطلاعات محصول مانند نام، قیمت و توضیحات همراه درخواست ارسال می‌شوند. سرور این اطلاعات را بررسی می‌کند و در صورت معتبر بودن، محصول جدید را ثبت می‌کند. متد POST کاربردهای مختلفی دارد:

  • ثبت‌نام یک کاربر جدید
  • ارسال فرم تماس
  • ایجاد محصول یا مقاله
  • ثبت سفارش
  • ارسال نظر
  • آپلود فایل
  • ارسال اطلاعات برای پردازش

درخواست‌های POST معمولاً اطلاعات را در بدنه درخواست یا Request Body قرار می‌دهند. شکل و نوع این اطلاعات به سایت، API و نوع داده مورد استفاده بستگی دارد.

تفاوت متدهای GET و POST چیست؟

GET و POST دو متد بسیار پرکاربرد HTTP هستند، اما هدف یکسانی ندارند. GET برای دریافت اطلاعات استفاده می‌شود، درحالی‌که POST معمولاً اطلاعات جدیدی را برای پردازش یا ثبت به سرور می‌فرستد.

ویژگیGETPOST
هدف اصلیدریافت اطلاعاتارسال یا ثبت اطلاعات
تغییر اطلاعات سرورنباید اطلاعات را تغییر دهدمی‌تواند اطلاعات جدیدی ایجاد کند
محل معمول اطلاعاتآدرس و Query Stringبدنه درخواست
نمونه کاربرددریافت فهرست محصولاتثبت یک محصول جدید
قابلیت کش‌شدنمعمولاً می‌تواند کش شودمعمولاً کش نمی‌شود

قرارگرفتن اطلاعات در بدنه درخواست POST به معنی رمزنگاری آن‌ها نیست. برای محافظت از اطلاعات در مسیر انتقال باید از HTTPS استفاده شود.

متد PUT چیست؟

از متد PUT برای به‌روزرسانی یا جایگزین‌کردن اطلاعات یک منبع موجود استفاده می‌کنیم. در این درخواست معمولاً شناسه منبع در آدرس قرار می‌گیرد.

برای مثال، درخواست زیر می‌تواند اطلاعات محصول شماره 25 را به‌روزرسانی کند:

PUT /products/25

اطلاعات جدید محصول همراه درخواست ارسال می‌شوند. سرور محصول موردنظر را پیدا می‌کند و اطلاعات آن را با داده‌های دریافت‌شده به‌روزرسانی می‌کند. در طراحی بسیاری از APIها، PUT برای ارسال نسخه کامل و جدید یک منبع استفاده می‌شود. برای تغییر فقط بخشی از اطلاعات نیز ممکن است از متد PATCH استفاده شود. بااین‌حال، نحوه دقیق استفاده از این متدها به طراحی API بستگی دارد.

متد DELETE چیست؟

از متد DELETE برای حذف یک منبع از سرور استفاده می‌کنیم. آدرس درخواست معمولاً مشخص می‌کند که کدام منبع باید حذف شود. برای نمونه، درخواست زیر می‌تواند حذف محصول شماره 25 را از سرور درخواست کند:

DELETE /products/25

سرور ابتدا درخواست و دسترسی کاربر را بررسی می‌کند. اگر محصول وجود داشته باشد و کاربر اجازه حذف آن را داشته باشد، سرور عملیات حذف را انجام می‌دهد. ارسال درخواست DELETE همیشه به معنی حذف قطعی اطلاعات از پایگاه داده نیست. بعضی برنامه‌ها اطلاعات را به‌صورت نرم حذف می‌کنند؛ یعنی رکورد باقی می‌ماند اما دیگر در بخش‌های معمول برنامه نمایش داده نمی‌شود.

مقایسه متدهای GET، POST، PUT و DELETE

متدکاربرد اصلینمونه آدرسنتیجه مورد انتظار
GETدریافت اطلاعات/products/25نمایش اطلاعات محصول
POSTایجاد اطلاعات جدید/productsثبت محصول جدید
PUTبه‌روزرسانی اطلاعات/products/25ویرایش محصول شماره 25
DELETEحذف اطلاعات/products/25حذف محصول شماره 25

این متدها در APIها معمولاً برای انجام عملیات اصلی روی اطلاعات استفاده می‌شوند. بااین‌حال، سرور باید برای هر آدرس و متد، رفتار مناسب را تعریف کرده باشد.

متدهای HTTP چه ارتباطی با درخواست دارند؟

متد بخشی از درخواست HTTP است و هدف آن را مشخص می‌کند. آدرس درخواست منبع موردنظر را نشان می‌دهد و متد تعیین می‌کند که کلاینت می‌خواهد چه عملی روی آن منبع انجام دهد. برای مثال، دو درخواست زیر آدرس مشابهی دارند، اما به دلیل تفاوت متد، هدف آن‌ها متفاوت است:

GET /products/25 
DELETE /products/25

درخواست اول اطلاعات محصول شماره 25 را می‌خواهد، اما درخواست دوم حذف همان محصول را درخواست می‌کند. بنابراین، سرور برای تشخیص عملیات فقط آدرس را بررسی نمی‌کند و متد درخواست نیز اهمیت دارد. بدنه درخواست، هدرها، اطلاعات ورود کاربر و مجوزهای دسترسی نیز می‌توانند در تصمیم سرور نقش داشته باشند. بااین‌حال، متد HTTP مشخص‌کننده نوع اصلی عملیات است.

کد وضعیت HTTP چیست؟

کد وضعیت HTTP یا HTTP Status Code یک عدد سه‌رقمی است که سرور آن را همراه پاسخ ارسال می‌کند. این عدد نتیجه کلی پردازش درخواست را مشخص می‌کند. کد وضعیت به کلاینت می‌گوید که درخواست با موفقیت انجام شده، به هدایت نیاز دارد، مشکل از درخواست بوده یا سرور هنگام پردازش با خطا روبه‌رو شده است. برای مثال:

  • کد 200 معمولاً موفقیت درخواست را نشان می‌دهد.
  • کد 404 نشان می‌دهد منبع موردنظر پیدا نشده است.
  • کد 500 از بروز یک خطای داخلی در سرور خبر می‌دهد.

برنامه‌ها و مرورگرها با بررسی این کدها می‌توانند تصمیم بگیرند که پاسخ را چگونه پردازش یا نمایش دهند.

دسته‌بندی کدهای وضعیت HTTP

کدهای وضعیت HTTP بر اساس رقم اول خود در پنج گروه قرار می‌گیرند. هر گروه مفهوم کلی خاصی دارد.

دستهعنوانمفهوم کلی
1xxاطلاعاتیدرخواست دریافت شده و پردازش آن ادامه دارد
2xxموفقیتسرور درخواست را با موفقیت دریافت و پردازش کرده است
3xxتغییر مسیرکلاینت برای تکمیل درخواست باید اقدام دیگری انجام دهد
4xxخطای کلاینتدر درخواست یا دسترسی کلاینت مشکلی وجود دارد
5xxخطای سرورسرور هنگام پردازش یک درخواست معتبر با مشکل روبه‌رو شده است

کدهای وضعیت 1xx؛ پاسخ‌های اطلاعاتی

کدهای گروه 1xx نشان می‌دهند که سرور درخواست را دریافت کرده و فرایند ارتباط هنوز ادامه دارد. این کدها معمولاً پاسخ نهایی نیستند.

برای مثال، کد 100 Continue به کلاینت اعلام می‌کند که می‌تواند ارسال ادامه درخواست را انجام دهد. کاربران معمولاً این گروه از کدها را هنگام کار عادی با مرورگر مشاهده نمی‌کنند.

کدهای وضعیت 2xx؛ درخواست‌های موفق

کدهای گروه 2xx نشان می‌دهند که سرور درخواست را با موفقیت دریافت و پردازش کرده است. نوع دقیق موفقیت به کد ارسال‌شده بستگی دارد.

  • 200 OK: درخواست با موفقیت انجام شده است.
  • 201 Created: سرور منبع جدیدی را با موفقیت ایجاد کرده است.
  • 204 No Content: درخواست موفق بوده، اما پاسخ محتوایی ندارد.

برای مثال، سرور می‌تواند برای دریافت موفق اطلاعات با GET کد 200 و برای ایجاد یک منبع جدید با POST کد 201 را ارسال کند.

کدهای وضعیت 3xx؛ تغییر مسیر

کدهای گروه 3xx معمولاً نشان می‌دهند که منبع به آدرس دیگری منتقل شده یا کلاینت برای تکمیل درخواست باید اقدام دیگری انجام دهد.

  • 301 Moved Permanently: منبع به‌صورت دائمی منتقل شده است.
  • 302 Found: منبع به‌صورت موقت در آدرس دیگری قرار دارد.
  • 304 Not Modified: محتوای ذخیره‌شده کلاینت هنوز قابل استفاده است.

مرورگرها معمولاً تغییر مسیر را به‌صورت خودکار دنبال می‌کنند. به همین دلیل، ممکن است کاربر متوجه دریافت این کدها نشود.

کدهای وضعیت 4xx؛ خطاهای کلاینت

کدهای گروه 4xx نشان می‌دهند که سرور به دلیل وجود مشکلی در درخواست، آدرس یا دسترسی کلاینت نمی‌تواند عملیات را انجام دهد.

  • 400 Bad Request: درخواست ساختار یا اطلاعات معتبری ندارد.
  • 401 Unauthorized: کلاینت باید هویت خود را تأیید کند.
  • 403 Forbidden: سرور درخواست را درک کرده، اما اجازه انجام آن را نمی‌دهد.
  • 404 Not Found: منبع موردنظر پیدا نشده است.
  • 405 Method Not Allowed: متد استفاده‌شده برای این منبع مجاز نیست.

برای مثال، اگر کاربر آدرس محصولی را وارد کند که وجود ندارد، سرور می‌تواند کد 404 را برگرداند. اگر منبع وجود داشته باشد اما کاربر اجازه دسترسی به آن را نداشته باشد، کد 403 مناسب‌تر است.

کدهای وضعیت 5xx؛ خطاهای سرور

کدهای گروه 5xx نشان می‌دهند که سرور هنگام پردازش درخواست با مشکل روبه‌رو شده است. در این حالت، ممکن است درخواست کلاینت معتبر باشد، اما سرور نتواند آن را کامل کند.

  • 500 Internal Server Error: خطای داخلی و پیش‌بینی‌نشده‌ای در سرور رخ داده است.
  • 502 Bad Gateway: سرور واسط پاسخ معتبری از سرور دیگر دریافت نکرده است.
  • 503 Service Unavailable: سرویس در حال حاضر در دسترس نیست.
  • 504 Gateway Timeout: سرور واسط در زمان مناسب پاسخی دریافت نکرده است.

خطاهای برنامه‌نویسی، قطعی سرویس‌های وابسته، افزایش شدید درخواست‌ها و مشکلات موقت زیرساخت می‌توانند باعث ایجاد کدهای گروه 5xx شوند.

کدهای وضعیت پرکاربرد HTTP

کد وضعیتعنوانمفهومنمونه کاربرد
200OKدرخواست با موفقیت انجام شده استدریافت اطلاعات یک محصول
201Createdمنبع جدید با موفقیت ایجاد شده استثبت کاربر یا محصول جدید
204No Contentعملیات موفق بوده، اما محتوایی بازگردانده نمی‌شودحذف یا ویرایش موفق اطلاعات
301Moved Permanentlyمنبع برای همیشه به آدرس دیگری منتقل شده استتغییر دائمی آدرس یک صفحه
400Bad Requestاطلاعات یا ساختار درخواست معتبر نیستارسال داده ناقص یا نامعتبر
401Unauthorizedتأیید هویت لازم استدرخواست بدون اطلاعات ورود معتبر
403Forbiddenکاربر اجازه دسترسی به منبع را نداردورود کاربر عادی به بخش مدیریت
404Not Foundمنبع موردنظر پیدا نشده استدرخواست یک صفحه یا محصول ناموجود
405Method Not Allowedمتد درخواست برای این آدرس مجاز نیستارسال DELETE به منبعی که حذف را نمی‌پذیرد
500Internal Server Errorهنگام پردازش درخواست خطایی در سرور رخ داده استبروز خطای پیش‌بینی‌نشده در برنامه
503Service Unavailableسرویس به‌صورت موقت در دسترس نیستتعمیرات یا فشار زیاد روی سرور

کد وضعیت چه ارتباطی با پاسخ سرور دارد؟

کد وضعیت بخشی از پاسخ HTTP است. سرور پس از دریافت و پردازش درخواست، کدی را انتخاب می‌کند که نتیجه عملیات را به‌درستی نشان دهد. برای مثال، اگر کلاینت با متد GET اطلاعات یک محصول موجود را درخواست کند، سرور می‌تواند کد 200 را همراه اطلاعات محصول بفرستد. اگر محصول وجود نداشته باشد، پاسخ می‌تواند کد 404 داشته باشد.

همچنین اگر کلاینت با متد POST محصول جدیدی ایجاد کند، سرور می‌تواند کد 201 را ارسال کند. اگر اطلاعات ارسالی نامعتبر باشند، ممکن است پاسخ با کد 400 برگردد. در نتیجه، متد HTTP هدف درخواست را مشخص می‌کند و کد وضعیت نتیجه پردازش همان درخواست را نشان می‌دهد.

ارتباط متدهای HTTP با کدهای وضعیت

هر متد می‌تواند با توجه به نتیجه عملیات، کدهای وضعیت متفاوتی دریافت کند. یک کد مشخص همیشه به یک متد خاص محدود نیست، اما بعضی ترکیب‌ها در سایت‌ها و APIها رایج‌تر هستند. این جدول نمونه‌های رایج را نشان می‌دهد و یک قانون ثابت برای تمام پروژه‌ها نیست. توسعه‌دهنده باید با توجه به نتیجه واقعی عملیات، کد وضعیت درست را انتخاب کند.

متدعملیاتپاسخ موفق رایجپاسخ خطای احتمالی
GETدریافت اطلاعات200 OK404 Not Found
POSTایجاد اطلاعات جدید201 Created400 Bad Request
PUTبه‌روزرسانی اطلاعات200 OK یا 204 No Content404 Not Found
DELETEحذف اطلاعات200 OK یا 204 No Content404 Not Found

چرا شناخت متدها و کدهای وضعیت مهم است؟

شناخت متدهای HTTP و کدهای وضعیت به برنامه‌نویس کمک می‌کند ارتباط میان کلاینت و سرور را بهتر درک کند. این مفاهیم هنگام طراحی سایت، ساخت API و بررسی خطاهای برنامه کاربرد زیادی دارند. با شناخت این مفاهیم می‌توانید:

  • هدف هر درخواست را سریع‌تر تشخیص دهید.
  • APIهای منظم‌تر و قابل‌فهم‌تری طراحی کنید.
  • دلیل خطاهای سایت یا برنامه را بهتر پیدا کنید.
  • پاسخ سرور را به‌درستی در کلاینت پردازش کنید.
  • از ابزارهای توسعه‌دهنده مرورگر بهتر استفاده کنید.
  • میان خطای درخواست و خطای سرور تفاوت قائل شوید.

برای مثال، مشاهده کد 404 نشان می‌دهد که سرور منبع موردنظر را پیدا نکرده است. در مقابل، کد 500 نشان می‌دهد هنگام پردازش درخواست، مشکلی در سمت سرور رخ داده است.

جمع‌بندی

متد HTTP نوع عملی را مشخص می‌کند که کلاینت از سرور می‌خواهد. GET برای دریافت اطلاعات، POST برای ارسال یا ایجاد اطلاعات، PUT برای به‌روزرسانی و DELETE برای حذف یک منبع کاربرد دارد.

کد وضعیت HTTP نتیجه پردازش درخواست را نشان می‌دهد. کدهای 1xx اطلاعاتی هستند، 2xx موفقیت را نشان می‌دهند، 3xx برای تغییر مسیر استفاده می‌شوند، 4xx به خطاهای مربوط به کلاینت اشاره دارند و 5xx خطاهای سمت سرور را مشخص می‌کنند. کدهای 200، 404 و 500 از شناخته‌شده‌ترین کدهای وضعیت هستند. کد 200 موفقیت درخواست، کد 404 پیدانشدن منبع و کد 500 بروز خطای داخلی در سرور را نشان می‌دهد.

در این قسمت با نقش متدها در درخواست‌های HTTP و نقش کدهای وضعیت در پاسخ‌های سرور آشنا شدیم. در قسمت‌های بعدی دوره، سایر بخش‌های مهم ارتباط HTTP را بررسی می‌کنیم. برای مشاهده تمام جلسات وارد صفحه آموزش پروتکل HTTP شوید. همچنین برای مرور قسمت قبل می‌توانید مقاله پروتکل HTTP و HTTPS چیست؟ را مطالعه کنید.

کلمات کلیدی - تگ‌ها

از کلمات کلیدی و تگ‌های مربوط به متدهای HTTP و کدهای وضعیت چیست؟ معرفی کامل و کاربردی دیدن فرمایید.

تصویر کلمات کلیدی مرتبط با متدهای HTTP و کدهای وضعیت چیست؟ معرفی کامل و کاربردی

مشاهده در آپارات یا یوتیوب

محتوای ویدیویی این صفحه در سایت قابل مشاهده است. اما اگر عادت دارید توی پلتفرم آپارات یا یوتیوب ویدیوها را مشاهده کنید، می‌توانید از دکمه‌های زیر استفاده کنید.

تماشای ویدیوی متدهای HTTP و کدهای وضعیت چیست؟ معرفی کامل و کاربردی در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه متدهای HTTP و کدهای وضعیت چیست؟ معرفی کامل و کاربردی در شبکه‌های اجتماعی

نظرات شما برای ما ارزشمند است

متاسفانه تاکنون پیامی برای این مطلب ثبت نشده است. شما اولین شخصی باشید که پیام می‌گذارد.

نظرات کاربران

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.