متدهای HTTP به عنوان یک رابط واحد برای دسترسی و ارسال اطلاعات به منابع مورد استفاده قرار میگیرند. معمولترین متدهای موجود در پروتکلهای HTTP عبارتند از: POST, GET, PUT, PATCH و DELETE.
این متدها به ترتیب برای ساختن (Create)، خواندن (Read)، بروزرسانی (Update) و حذف کردن (Delete) مورد استفاده قرار میگیرند.
به مجموعهی عملیاتهای ساختن، خواندن، بروزرسانی و حذف کردن، عملیات CRUD گفته میشود که C مخفف Create، حرف R مخفف Read، حرف U مخفف Update و در نهایت حرف D مخفف Delete می باشد.
علاوه بر متدهای فوق، دو متد OPTION و HEAD وجود دارند که از آنها استفادهی چندانی در سطح وب نمیشود.
جهت دستیابی به یک دید کلی در جدول زیر مقادیری که هر یک از متدهای HTTP باز میگردانند نمایش داده شده است:
متدهای HTTP CRUD مثال ============== ============= ================================= POST Create Link to /customers/{id} شامل ID جدید GET Read نمایش لیستی از مشتریان، صفحه بندی PUT Update/Replace جایگزین کردن هر اسمی درون لیست مشتریان PATCH Update/Modify ویرایش کردن یک نام از لیست تمام مشتریان DELETE Delete حذف کردن نام یک مشتری و یا مشتریان
متد POST برای ساختن یک منبع جدید در مجموعه مورد استفاده قرار میگیرد. به بیان سادهتر ایجاد یک رکورد جدید توسط این متد انجام میشود. در مثال زیر از متد پست برای اضافه کردن یک کاربر جدید به مجموعهی استفاده کردهایم. متد پست بدین صورت است که اگر یک درخواست در چندین زمان متفاوت ارسال شود، چندین رکورد متفاوت ساخته خواهد شد.
مثال:
Path : /users Method: POST Body : { "username":"masoud", "email":"masoud@roxo.ir" } =============================== Example: POST http://www.roxo.ir/users POST http://www.example.com/users/username
این مثال یک کاربر جدید با نام کاربری masoud و ایمیل masoud@roxo.ir با id = ۱ را ایجاد میکند.
این متد برای خواندن اطلاعات یک منبع ( نه تغییر آنها) بکار گرفته میشود. گاهی این متد برای بازگردانی اطلاعاتی به فرمت XML یا JSON نیز کاربرد دارد. بنابراین هنگامیکه از این متد استفاده میشود، دادهها کاملا امن هستند و این امر ریسک استفاده از این متد را فقط و فقط برای خواندن اطلاعات بسیار پایین میاورد. همچنین بدیهیست که اگر یک درخواست مشابه در چندین زمان متفاوت به متد GET ارسال شود، پاسخی مشابه دریافت خواهیم کرد.
مثال:
Path : /user/1 Method: GET Body : { "id":1, "username":"masoud", "email":"masoud@roxo.ir" } =============================== Example: GET http://www.example.com/users/masoud GET http://www.example.com/users/1 GET http://www.example.com/users/list
متد PUT برای بروزرسانی (آپدیت) یک رکورد موجود و یا ساخت یک رکورد جدید (در صورت عدم وجود) کاربرد دارد. این متد مقدار جدید رکورد را در هر درخواست جایگزین میکند. یعنی به طور مشابه متد PUT ابتدا یک رکورد را پاک میکند و سپس یک رکورد جدید را ایجاد و در مکان رکورد قبلی با مقادیر جدید جایگزین میکند. بنابراین اگر چندین فیلد در یک درخواست PUT مقداری نداشته باشند، بدیهیست که پس از آپدیت شدن مقدار null را در خود جایگزین میکنند. مثلا اگر یک کاربر دارای فیلدهای نام کاربری و ایمیل باشد و سپس متد PUT درخواستی را ارسال کند که تنها شامل فیلد نام کاربری باشد، فقط این فیلد تغییر میکند و فیلد ایمیل مقداری برابر null را دریافت خواهد کرد.
مثال زیر را در حالتی ارائه میدهیم که تمام فیلدها وجود دارند:
Path : /user/1 Method: PUT Body : { "id":1, "username":"masoud_updated", "email":"masoud_updated@roxo.ir" }
با اعمال مثال بالا، فیلد نام کاربری و ایمیل تغییر میکند. و اما مثال بعدی:
Path : /user/1 Method: PUT Body : { "id":1, "email":"masoud_updated@roxo.ir" }
با اعمال متد PUT برای مثال فوق تنها ایمیل تغییر میکند و مقدار نام کاربری در دیتابیس به صورت null ذخیره میگردد. و اگر متد GET را جهت خواندن مثال فوق اعمال کنیم با خروجی زیر مواجه خواهیم شد:
Path : /user/1 Method: GET Body : { "id":1, "username":null, "email":"masoud_updated@roxo.ir" }
این متد روشی دیگر برای آپدیت و بروزرسانی رکوردها میباشد با این تفاوت که پس از ارسال درخواست، تنها فیلدهایی که دارای مقادیر هستند تغییر میکنند و سایر فیلدها به قوت خود باقی میمانند. مثلا فرض کنید یک رکورد با نام کاربری و ایمیل در پایگاه دادهی خود ذخیره کردهاید و حال قصد بروزرسانی آن با متد PATCH را دارید. اگر فیلد نام کاربری را پر کنید و ایمیل را خالی بگذارید و سپس درخواست را ارسال کنید، تنها مقدار فیلد نام کاربری در پایگاه داده تغییر میکند و مقدار فیلد ایمیل تغییر نخواهد کرد.
مثال زیر را در حالتی که تمام فیلدها دارای مقدار هستند، ارائه میدهیم:
Path : /user/1 Method: PATCH Body : { "id":1, "username":"masoud_updated", "email":"masoud_updated@roxo.ir" }
با اعمال متد PATCH در مثال بالا تمام فیلدهای نام کاربری و ایمیل بروزرسانی میشوند و اما مثال بعدی:
Path : /user/1 Method: PATCH Body : { "id":1, "email":"masoud_updated@roxo.ir" }
پس از ارسال درخواست مثال فوق تنها فیلد ایمیل تغییر میکند و فیلد نام کاربری مقداری برابر masoud_updated (همان مقدار قبلی) دارد. اگر از متد GET برای نمایش مثال فوق استفاده کنیم با خروجی زیر مواجه خواهیم شد:
Path : /user/1 Method: GET Body : { "id":1, "username":masoud_updated, "email":"masoud_updated@roxo.ir" }
سادهترین متد پروتکل HTTP، متد DELETE میباشد که با ارسال این درخواست درکورد موردنظر برای همیشه از پایگاه داده حذف خواهد شد.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.