-
اصول برنامه نویسی
-
1404-06-15
-
17
-
0
قبل از ظهور API نرمافزارها دادهها را از طریق فایلها (مانند CSV، XML یا JSON اولیه) با یکدیگر به اشتراک میگذاشتند. مشکل این روش نیازمند پردازش دستی یا ابزارهای خاص برای خواندن و نوشتن فایلها بود و بهروزرسانی اطلاعات به صورت همزمان مشکل بود.
در بعضی موارد سیستمها دادهها را از طریق پوشهها و فایلهای اشتراکی در شبکه محلی انتقال میدادند. و یا برنامهها مستقیماً به پایگاه داده یکدیگر متصل میشدند تا دادهها را بخوانند یا بنویسند.
API مخفف عبارت Application Programming Interface و به معنای رابط برنامهنویسی کاربردی است که به اپلیکیشن و نرم افزارها این امکان را میدهد تا با برنامههای دیگر ارتباط برقرار کنند. در واقع این یک واسطه نرم افزاری است که چندین برنامه را به هم متصل کرده و به آنها اجازه میدهد تا با استفاده از مجموعهای از تعاریف و پروتکلها با یکدیگر ارتباط برقرار کنند.
اجازه بدهید با یک مثال توضیح دهیم که API چه کاری انجام میدهد. فرض کنید داخل یک رستوران هستید. کاربر را به عنوان کسی که میخواهد غذا سفارش دهد، نرمافزار را به عنوان آشپز و API را به عنوان پیشخدمت رستوران تصور کنید. در یک رستوران باید غذایی که سفارش داده میشود به اطلاع آشپز برسد، توسط او پخته شده و در نهایت برای مشتری سرو شود.
این کار در برنامههای کاربردی توسط APIها انجام میشود؛ زیرا آنها هستند که امکان ارتباط را میان کاربران، دستگاهها و برنامهها ایجاد میکنند.
به سادهترین بیان وب سرویس ابزاری است که به واسطه آن دو برنامه مختلف میتوانند با هم حرف بزنند. این ابزار یک استاندارد برای انتقال و انتشار پیغامهایی است که بین برنامههای سمت مشتری و سرور(در بستر وب ، HTTP) رد و بدل میشود.
Api مجموعهای از قوانین، پروتکلها و ابزارهایی است که به نرم افزارهای مختلف اجازه میدهد تا با یکدیگر ارتباط برقرار کرده و تعامل داشته باشند.
وب سرویس نوعی API است که با استفاده از پروتکلهای وب معمولی از طریق اینترنت اجرا میشود. این به سیستم های نرم افزاری مختلف اجازه میدهد تا از طریق اینترنت با یکدیگر ارتباط برقرار کرده و اطلاعات را جابه جا کنند.
هر WEB SERVICE را میتوان به نوعی یک Api در نظر گرفت. برای مثال با خرید سامانه پیامکی از یک وب سرویس برای ارائه خدمات خود استفاده میکنید. این وب سرویس امکان ارتباط بین نرم افزارهای مختلف برای ارسال پیامک را در اختیار شما قرار میدهد و بنابراین نقش API را نیز بازی میکند.
وب سرویس SOAP (Simple Object Access Protocol) یک پروتکل استاندارد برای تبادل اطلاعات بین سیستمها بر روی شبکه است. برخلاف REST که سبک و معماریمحور است، SOAP مبتنی بر یک پروتکل رسمی و ساختارمند است. در اینجا برخی از ویژگیهای اصلی SOAP آورده شده است:
ساختار مبتنی بر XML : SOAP از XML به عنوان قالب پیامها استفاده میکند. این قالب ساختاریافته باعث میشود که پیامها قابل خواندن و پردازش توسط ماشین باشند.
سختگیری و استانداردها: SOAP برای عملیات پیچیده با نیازهای خاص (مانند تراکنشها و امنیت بالا) مناسبتر است، زیرا استانداردهای گستردهتری مانند WS-Security را پشتیبانی میکند.
SOAP برای سیستمهای بزرگ سازمانی که به امنیت، انتقال قابل اعتماد و سازگاری بالا نیاز دارند، مناسبتر است.
<?xml version="1.0"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cal="http://www.google.com/">
<soapenv:Header/>
<soapenv:Body>
<cal:easter_date soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<year xsi:type="xsd:short">2014</year>
</cal:easter_date>
</soapenv:Body>
</soapenv:Envelope>
وب سرویس REST (Representational State Transfer) یک معماری نرمافزاری برای طراحی و پیادهسازی سرویسهای وب است که به شکلی سبک و ساده طراحی شده است. این معماری بر اساس اصول زیر کار میکند:
منابع (Resources) : در REST، هر چیزی که قابل دسترسی باشد (مانند دادهها یا اشیاء) به عنوان منبع شناخته میشود. این منابع معمولاً با URL شناسایی میشوند.
بدون وضعیت (Stateless) : هر درخواست مستقل از دیگر درخواستها است و سرور اطلاعاتی درباره حالت کلاینت نگه نمیدارد.
قابلیت کش (Cacheability) : پاسخها قابلیت کش شدن دارند تا به کاهش بار روی سرور کمک کنند.
استفاده از REST در توسعه برنامهها مزایایی مانند سادگی، کارایی و انعطافپذیری را فراهم میکند.
[
{
"userId": 1,
"id": 1,
"title": "shop one",
"body": "description shop one"
},
{
"userId": 1,
"id": 2,
"title": "shop two",
"body": "description shop two"
}
]
گراف کیوال (GraphQL) یک استاندارد مبتنی بر کلاینت و زبان برنامه نویسی کوئری است که از طریق آن میتوانید درخواست کلاینت را با ارسال یک کوئری به API پاسخ داده و آن چیزی که موردنیاز کاربر میباشد را بفرستید. در صورت تسلط بر REST APIها، از گراف کیوال برای توسعه در این محیط میتوانید استفاده کنید . GraphQL یک نقطه انتهایی منفرد در اختیار ما قرار میدهد و دیگر نیازی به نسخه 2 یا نسخه 3 برای API یکسان (مانند REST) وجود ندارد.
gRPC یک چارچوب مدرن برای ساخت APIهای سریع، مقیاسپذیر و بین پلتفرمی است که توسط گوگل توسعه داده شده است. این پروتکل از HTTP/2 برای ارتباطات کارآمد استفاده میکند و دادهها را به صورت باینری با فرمت Protocol Buffers (Protobuf) تبادل میکند، که بسیار سریعتر و کمحجمتر از JSON یا XML است. gRPC از فراخوانی روشهای از راه دور (Remote Procedure Calls - RPC) پشتیبانی میکند و به کلاینتها اجازه میدهد مستقیماً متدهای تعریفشده در سرور را اجرا کنند. ویژگیهای اصلی آن شامل ارتباط دوجهته (Bidirectional Streaming)، کارایی بالا، و پشتیبانی چند زبانه است. پشتیبانی از ارتباطات بلادرنگ (realtime) را دارد.
این پروتکل برای سیستمهای توزیعشده (مانند میکروسرویسها) و محیطهایی که نیاز به عملکرد بالا دارند، بسیار مناسب است. یک نقطه ضعف gRPC، پیچیدگی بیشتر در مقایسه با REST و ناسازگاری نسبی آن با مرورگرهای وب است.
WebSocket API یک پروتکل ارتباطی پیشرفته است که ارتباط دوجهته (bidirectional) و
بلادرنگ (real-time) بین کلاینت و سرور را فراهم میکند. برخلاف HTTP که ارتباط پس از هر درخواست بسته میشود، WebSocket یک اتصال پایدار و مداوم ایجاد میکند. این API برای کاربردهایی مانند چت آنلاین، بازیهای چندنفره، و بهروزرسانیهای زنده دادهها (مانند قیمت سهام) مناسب است.
این پروتکل سبک، سریع و کارآمد است و با کاهش سربار درخواستهای مکرر HTTP عملکرد بهتری ارائه میدهد. پیامها در WebSocket میتوانند به صورت متن یا باینری ارسال شوند.
یکی از مزیتهای کلیدی WebSocket، کاهش تأخیر و مصرف پهنای باند است.
با این حال، مدیریت پیچیدگی و امنیت این پروتکل نیازمند دقت بیشتری است.
معماری |
سادگی |
امنیت |
انعطافپذیری |
کارایی |
موارد استفاده |
RESTful |
ساده |
متوسط |
بالا |
متوسط |
وب و موبایل |
SOAP |
پیچیده |
بسیار بالا |
متوسط |
پایین |
بانکی و دولتی |
GraphQL |
متوسط |
بالا |
بسیار بالا |
بالا |
دادههای پیچیده |
gRPC |
پیچیده |
بالا |
بالا |
بسیار بالا |
میکروسرویسها |
WebSocket |
متوسط |
متوسط |
بالا |
بالا |
بلادرنگ |
ابزار پستمن یک ابزار توسعه API است که به ساخت، آزمایش و اصلاح آنها کمک میکند. به زبان سادهتر، Postman یک برنامه کامپیوتری است که برای تست API استفاده میشود. درواقع این ابزار یک درخواست API را به وب سرور ارسال و پاسخ را دریافت میکند و به توسعهدهندگان و تستکنندگان اجازه میدهد تا بهسادگی وبسرویسها، REST، SOAP را آزمایش کنند.
Swagger یک ابزار متنباز برای مستندسازی، مدیریت و بهینهسازی APIها است که به توسعهدهندگان اجازه میدهد مستندات جامع و دقیقی از APIهای خود تهیه کنند.
ارتباط بین API و دیتابیس معمولاً از طریق مراحل زیر انجام میشود:
کلاینت (مانند مرورگر وب یا برنامه موبایل) درخواست خود را از طریق HTTP به API ارسال میکند. این درخواست میتواند شامل اطلاعاتی مانند نوع عملیات GET، POST، PUT، DELETE و پارامترهای ورودی باشد.
API درخواست را دریافت و پارامترها را تجزیه میکند. بر اساس نوع عملیات، منطق مربوطه Business Logic اجرا میشود. API دادهها را از کلاینت دریافت کرده و آنها را آماده ارسال به دیتابیس میکند.
API از یک زبان یا فریمورک مانند SQL، ORM (Object Relational Mapping) یا کتابخانههای اتصال به دیتابیس برای ارسال دستورات به دیتابیس استفاده میکند.
به عنوان مثال:
در زبان SQL : API دستورات مستقیم مانند SELECT, INSERT, UPDATE, DELETE ارسال میکند.
در ORM : API از مدلهای تعریفشده برای مدیریت دادهها استفاده میکند.
دیتابیس دادههای درخواستشده را برمیگرداند یا نتیجه عملیات (مانند موفقیت یا خطا) را گزارش میکند. این پاسخ معمولاً شامل کدهای وضعیت (status codes) و دادههای مربوطه است.
API پاسخ دریافتشده از دیتابیس را پردازش و به فرمت مورد نیاز مانند JSON یا XML تبدیل میکند.
پاسخ نهایی به کلاینت ارسال میشود.
متد POST برای ساختن یک منبع جدید در مجموعه مورد استفاده قرار میگیرد. به بیان سادهتر ایجاد یک رکورد جدید توسط این متد انجام میشود.
مزایا و معایب استفاده از متد POST عبارتند از:
· رشته ها (داده های متنی)
· داده های باینری (آپلود فایل)
این متد برای خواندن اطلاعات یک منبع ( نه تغییر آنها) بکار گرفته میشود. گاهی این متد برای بازگردانی اطلاعاتی به فرمت XML یا JSON نیز کاربرد دارد.
مزایا و معایب استفاده از متد GET عبارتند از:
متد PUT برای بروزرسانی (آپدیت) یک رکورد موجود و یا ساخت یک رکورد جدید (در صورت عدم وجود) کاربرد دارد. این متد مقدار جدید رکورد را در هر درخواست جایگزین میکند. یعنی به طور مشابه متد PUT ابتدا یک رکورد را پاک میکند و سپس یک رکورد جدید را ایجاد و در مکان رکورد قبلی با مقادیر جدید جایگزین میکند. بنابراین اگر چندین فیلد در یک درخواست PUT مقداری نداشته باشند، بدیهیست که پس از آپدیت شدن مقدار null را در خود جایگزین میکنند. مثلا اگر یک کاربر دارای فیلدهای نام کاربری و ایمیل باشد و سپس متد PUT درخواستی را ارسال کند که تنها شامل فیلد نام کاربری باشد، فقط این فیلد تغییر میکند و فیلد ایمیل مقداری برابر null را دریافت خواهد کرد.
این متد روشی دیگر برای آپدیت و بروزرسانی رکوردها میباشد با این تفاوت که پس از ارسال درخواست، تنها فیلدهایی که دارای مقادیر هستند تغییر میکنند و سایر فیلدها به قوت خود باقی میمانند. مثلا فرض کنید یک رکورد با نام کاربری و ایمیل در پایگاه دادهی خود ذخیره کردهاید و حال قصد بروزرسانی آن با متد PATCH را دارید. اگر فیلد نام کاربری را پر کنید و ایمیل را خالی بگذارید و سپس درخواست را ارسال کنید، تنها مقدار فیلد نام کاربری در پایگاه داده تغییر میکند و مقدار فیلد ایمیل تغییر نخواهد کرد.
سادهترین متد پروتکل HTTP، متد DELETE میباشد که با ارسال این درخواست درکورد موردنظر برای همیشه از پایگاه داده حذف خواهد شد.
متد HTTP HEAD مشابه متد GET است، اما فقط هدرهای پاسخ را برمیگرداند و بدنهی پاسخ ارسال نمیشود. این متد برای بررسی وضعیت منابع، مانند وجود یا تغییرات آنها، بدون دانلود کامل محتوا استفاده میشود. HEAD سریعتر از GET است، زیرا حجم دادههای انتقالی کمتر است. از این متد در کاربردهایی مانند بررسی Last-Modified یا اندازهی فایل استفاده میشود. همچنین میتواند برای تست دسترسی یا احراز هویت بدون دریافت داده به کار رود.
متد HTTP OPTIONS برای تعیین قابلیتها و متدهای پشتیبانیشده توسط سرور برای یک منبع خاص استفاده میشود. این متد به کلاینت اجازه میدهد بدون اجرای عملیاتی خاص، اطلاعاتی دربارهی متدهای مجاز (مانند GET، POST ) یا هدرهای قابل استفاده به دست آورد. بهعنوان نمونه، در پاسخ سرور ممکن است هدر Allow: GET, POST, OPTIONS ارسال شود. این متد همچنین برای تنظیم ارتباطات CORS (Cross-Origin Resource Sharing) به کار میرود. OPTIONS ابزاری مفید برای بررسی امکانات سرور پیش از ارسال درخواست واقعی است.
متد HTTP CONNECT برای ایجاد یک تونل ارتباطی بین کلاینت و سرور استفاده میشود. این متد معمولاً در پروتکلهای رمزنگاری شده مانند HTTPS به کار میرود تا یک ارتباط امن از طریق یک پراکسی سرور برقرار کند.کلاینت با ارسال CONNECT به پراکسی، درخواست میکند که اتصال مستقیم با سرور مقصد ایجاد شود. پاسخ پراکسی با کد وضعیت 200 (Connection Established) نشاندهنده موفقیتآمیز بودن تونل است. این متد بیشتر در مرورگرها و ابزارهای شبکه برای مدیریت ارتباطات امن مورد استفاده قرار میگیرد.
متد |
عملکرد |
بدون اثرگذاری (Idempotent) |
ایجاد تغییر |
GET |
دریافت داده |
بله |
خیر |
POST |
ایجاد منبع جدید |
خیر |
بله |
PUT |
بهروزرسانی یا ایجاد منبع |
بله |
بله |
PATCH |
بهروزرسانی جزئی منبع |
خیر |
بله |
DELETE |
حذف منبع |
بله |
بله |
HEAD |
دریافت متادیتا |
بله |
خیر |
OPTIONS |
بررسی متدهای پشتیبانیشده |
بله |
خیر |
CONNECT |
ایجاد تونل |
خیر |
بله |
ارتباط متدهای API با دیتابیس بر اساس نوع عملیاتی که توسط کلاینت درخواست میشود و همچنین ماهیت دادههای ذخیرهشده در دیتابیس تنظیم میشود.
عملکرد: برای خواندن دادهها از دیتابیس استفاده میشود. معادل عملیات SELECT در دیتابیسهای SQL.
نمونه ارتباط: API یک درخواست دریافت میکند مانند(/users/1) . یک کوئری به دیتابیس ارسال میشود تا داده مربوط به شناسه کاربر 1 را بازیابی کند.
عملکرد: برای ایجاد داده جدید در دیتابیس استفاده میشود. معادل عملیات INSERT در دیتابیسهای SQL.
نمونه ارتباط: API دادههای جدیدی از کلاینت دریافت میکند (مانند اطلاعات کاربر جدید). دادهها از طریق کوئری به دیتابیس ارسال شده و یک رکورد جدید ایجاد میشود. دیتابیس پاسخ موفقیت یا شکست را برمیگرداند.
عملکرد: برای بهروزرسانی کامل یک رکورد استفاده میشود. معادل عملیات UPDATE در دیتابیسهای SQL.
نمونه ارتباط: API دادههای بهروزرسانیشده را دریافت میکند. کوئری به دیتابیس ارسال میشود تا رکورد موجود بهطور کامل جایگزین شود. دیتابیس نتیجه بهروزرسانی را بازمیگرداند.
عملکرد: برای بهروزرسانی جزئی یک رکورد استفاده میشود. معادل عملیات(UPDATE با تغییرات جزئی) در دیتابیسهای SQL.
نمونه ارتباط: API فقط دادههایی که نیاز به تغییر دارند را دریافت میکند. کوئری به دیتابیس ارسال میشود تا تنها فیلدهای مشخصشده بهروزرسانی شوند. دیتابیس نتیجه عملیات را بازمیگرداند.
عملکرد: برای حذف دادهها از دیتابیس استفاده میشود. معادل عملیات DELETE در دیتابیسهای SQL.
نمونه ارتباط: API یک درخواست حذف مانند (/users/1) دریافت میکند. یک کوئری به دیتابیس ارسال میشود تا رکورد مشخصشده حذف شود. دیتابیس نتیجه عملیات حذف را بازمیگرداند.
عملیات (CRUD) ایجاد، خواندن، بهروزرسانی و حذف معادلهای زیر را در متدهای API دارند:
متد API |
عملیات دیتابیس (SQL) |
هدف |
GET |
SELECT |
دریافت دادهها از دیتابیس |
POST |
INSERT |
ایجاد داده جدید در دیتابیس |
PUT |
UPDATE |
بهروزرسانی کامل رکوردها |
PATCH |
UPDATE |
بهروزرسانی جزئی رکوردها |
DELETE |
DELETE |
حذف دادهها از دیتابیس |
JSON (JavaScript Object Notation) یک فرمت استاندارد برای تبادل داده است که از متن ساده استفاده میکند. این فرمت برای ذخیرهسازی و ارسال دادهها بین سرور و کلاینت کاربرد دارد. JSON بر اساس جفتهای کلید-مقدار و آرایهها سازماندهی میشود. این فرمت خوانا برای انسان است و در بسیاری از زبانهای برنامهنویسی پشتیبانی میشود. JSON شامل انواع دادهای مانند رشتهها، اعداد، بولینها، آرایهها، اشیاء و null است. معمولاً در APIها، پیکربندیها و ذخیرهسازی دادهها استفاده میشود. مزیت اصلی JSON سادگی و حجم کم آن است.
{
"store": {
"name": "TechShop",
"location": "Downtown",
"categories": [
"Electronics",
"Books",
"Accessories"
],
"products": [
{
"id": 101,
"name": "Smartphone",
"price": 699.99,
"available": true
},
{
"id": 102,
"name": "Headphones",
"price": 149.99,
"available": false
}
]
}
}
XML (eXtensible Markup Language) یک زبان نشانهگذاری است که برای ذخیره و تبادل دادهها به صورت ساختاریافته و مستقل از پلتفرم طراحی شده است. این زبان از تگهای سفارشی استفاده میکند و دادهها را به شکل سلسلهمراتبی سازماندهی میکند. XML برای انتقال دادهها بین سیستمها و زبانهای مختلف و همچنین ذخیره پیکربندیها استفاده میشود. به دلیل خوانایی بالا برای انسان و ماشین، در بسیاری از سیستمهای قدیمی و پروتکلهای وب (مانند SOAP) به کار میرود. با این حال، در مقایسه با فرمتهایی مانند JSON، حجیمتر و کمتر بهینه است.
<?xml version="1.0"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cal="http://www.google.com/">
<soapenv:Header/>
<soapenv:Body>
<cal:easter_date soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<year xsi:type="xsd:short">2014</year>
</cal:easter_date>
</soapenv:Body>
</soapenv:Envelope>
در دنیای برنامهنویسی و شبکه، Request به معنی درخواست است و به درخواستهایی که از یک کلاینت (مانند مرورگر وب یا اپلیکیشن) به سرور ارسال میشود، اشاره دارد. این درخواستها معمولاً به منظور دریافت اطلاعات یا انجام عملیاتی خاص از سرور ارسال میشوند.
ساختار HTTP Request: یک درخواست HTTP معمولاً شامل اجزای زیر است:
URL: آدرس هدف که درخواست به آن ارسال میشود.
روش (Method) : نوع عملیات GET، POST، PUT و غیره.
هدرها (Headers): اطلاعات اضافی در مورد درخواست، مانند نوع محتوا (Content-Type) یا اطلاعات احراز هویت.
بدنه (Body): دادههایی که در برخی از درخواستها ارسال میشوند، مانند دادههای فرم یا اطلاعات JSON.
کدهای وضعیت HTTP چگونه طبقه بندی شدهاند؟
کدهای وضعیت HTTP به پنج طبقه مختلف تقسیم میشوند. حتی اگر کد پاسخ خاصی را نمیشناسید، با کمک این طبقات میتوانید به مفهوم کد پی ببرید. این طبقات به شرح زیر هستند:
1xx– اطلاعاتی: سرور درخواست را دریافت کرده و در حال پردازش است.
2xx– موفقیت آمیز: درخواست موفقیت آمیز بوده و مرورگر اطلاعات مدنظر را دریافت کرده است.
3xx– ریدایرکشن: شما ریدایرکت شدهاید و تکمیل درخواستتان به فعالیت بیشتری نیاز دارد.
4xx– خطای کاربر: وب سایت یا پیج مدنظر قابل دسترسی نیست. یا پیج در دسترس نبوده یا اینکه درخواست حاوی سینتکس نامناسب است.
5xx– خطای سرور: با اینکه درخواست، معتبر به نظر میرسد ولی سرور نمیتواند آن را تکمیل کند.
هندل کردن خطاهای HTTP یکی از بخشهای ضروری توسعه وب است که به توسعهدهندگان این امکان را میدهد تا در صورت وقوع مشکلات مختلف، بهطور مناسب پاسخ دهند و تجربه کاربری بهتری فراهم کنند. در HTTP، کدهای وضعیت (Status Codes) به طور مستقیم با خطاها در ارتباط هستند و برای مدیریت و هندل کردن خطاها استفاده میشوند.
کدهای وضعیت HTTP به دستههای مختلف تقسیم میشوند. برای هندل کردن خطاها، بیشتر با کدهای وضعیت از گروه 4XX و5XX سروکار داریم:
کدهای وضعیت (4XX)خطاهای مربوط به درخواست کلاینت:
این کدها نشاندهنده این است که درخواست ارسال شده توسط کلاینت مشکل دارد یا اشتباهی در آن وجود دارد.
400 Bad Request: درخواست اشتباه یا ناقص است.
خطای 400 Bad Request به معنای ارسال درخواست نامعتبر یا ناقص به سرور است. برای رفع آن، ساختار درخواست (URL، پارامترها، یا Body) را بررسی کرده و از صحت دادههای ارسالشده اطمینان حاصل کنید.
401 Unauthorized: کاربر نیاز به احراز هویت دارد.
خطای 401 Unauthorized زمانی رخ میدهد که احراز هویت معتبر انجام نشده باشد. برای رفع آن، مطمئن شوید توکن یا اطلاعات ورود در هدر درخواست (Authorization) بهدرستی تنظیم شده و کاربر مجوز دسترسی دارد.
403 Forbidden: کاربر مجاز به دسترسی به منبع نیست.
خطای 403 Forbidden زمانی رخ میدهد که سرور درخواست را دریافت میکند اما کلاینت اجازه دسترسی به منبع را ندارد. برای رفع آن، سطح دسترسی کاربر را بررسی کنید و مطمئن شوید که توکن یا اعتبارنامههای احراز هویت شامل مجوزهای کافی برای منبع موردنظر هستند.
404 Not Found: منبع درخواستشده پیدا نشد.
خطای 404 Not Found زمانی رخ میدهد که منبع درخواستشده در سرور یافت نمیشود. برای رفع آن، URL و مسیر درخواست را بررسی کنید و اطمینان حاصل کنید که منبع موردنظر در سرور وجود دارد یا به درستی تنظیم شده است.
405 Method Not Allowed: متد HTTP ارسالشده پشتیبانی نمیشود.
خطای 405 Method Not Allowed زمانی رخ میدهد که متد درخواست (مانند GET، POST، PUT) برای منبع مشخصشده مجاز نیست. برای رفع آن، اطمینان حاصل کنید که متد صحیح برای منبع موردنظر استفاده شده و سرور از آن متد پشتیبانی میکند.
کدهای وضعیت (5XX)خطاهای مربوط به سرور:
این کدها نشاندهنده خطاهایی هستند که در سرور رخ دادهاند.
500 Internal Server Error: یک خطای داخلی در سرور رخ داده است.
خطای 500 Internal Server Error به معنای وجود مشکلی در سرور است که باعث نمیشود درخواست به درستی پردازش شود. برای رفع آن، لاگهای سرور را بررسی کنید تا علت دقیق خطا مشخص شود و از عملکرد صحیح سرور و کدهای آن اطمینان حاصل کنید.
502 Bad Gateway: سرور به عنوان دروازه یا پروکسی مشکل دارد.
خطای 502 Bad Gateway زمانی رخ میدهد که سرور به عنوان دروازه یا پراکسی نتواند به سرور اصلی دسترسی پیدا کند. برای رفع آن، اتصال سرورهای پشتصحنه را بررسی کنید و از صحت پیکربندی پروکسی یا گیتوی اطمینان حاصل کنید.
503 Service Unavailable: سرویس در دسترس نیست.
خطای 503 Service Unavailable نشاندهنده این است که سرور موقتا قادر به پردازش درخواستها نیست. برای رفع آن، وضعیت سرور و منابع آن را بررسی کرده و مطمئن شوید که سرور در حال اجرا است و بار زیادی ندارد یا ممکن است نیاز به مقیاسبندی مجدد باشد.
504 Gateway Timeout: زمان انتظار برای درخواست بیش از حد طولانی بوده است.
خطای 504 Gateway Timeout زمانی رخ میدهد که سرور به عنوان دروازه یا پراکسی نتواند به سرور اصلی پاسخ دهد. برای رفع آن، ارتباطات شبکهای بین سرورها را بررسی کنید و از صحت تنظیمات تایماوت و پیکربندی پروکسی اطمینان حاصل کنید.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
https://nextadmin.net/http-request-methods/
https://jsonplaceholder.typicode.com/
ثبت دیدگاه جدید
0 دیدگاه
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *