از HTTP و REST چه می دانید ؟

از HTTP و REST چه می دانید ؟
Hypertext Transfer Protocol یا HTTP بخش بزرگی از دنیای وب است، هر دفعه ای که شما یک صفحه ی وب باز میکند یا یک درخواست Ajax ارسال میکنید از HTTP استفاده میکنید اما با این وجود HTTP بین توسعه دهندگان وب تا حدودی ناشناخته است، در این مقاله مجموعه ای از اصول طراحی را که REST شناخته میشود و همچنین اصول دیگری را نیز به تفضیل توضیح خواهیم داد، با مجیدآنلاین در این مقاله همراه باشید.
دارالترجمه رسمی
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
جای بروشور دیواری
خرید جای بروشور دیواری و رومیزی
افزونه های سئو وردپرس
بهترین افزونه های سئو وردپرس به صورت کاملا فارسی
تعمیر لوازم خانگی
تعمیر جاروبرقی، مایکروفر، بخارشوی، ظرفشویی، لباسشویی، سولاردام، کولرگازی
خودتان را اینجا معرفی کنید

REST چیست ؟

REST یک راه ساده برای سازماندهی تعاملات بین سیستم های مستقل است، از سال 2005 محبوبیت پیدا کرد و الهام بخش خدمات طراحی مختلفی مانند Twitter بوده است، این موضوع به این دلیل است که REST به شما اجازه میدهد با کمترین سربار به تعامل بین مشتریان مختلف تلفن همراه و وب بپردازید، در تئوری، REST به وب گره نخورده است، هرجایی که از HTTP بتوان استفاده کرد از REST هم میتوان استفاده کرد و همچنین یادتان باشد REST از HTTP الهام گرفته شده است.

HTTP چیست ؟

HTTP یک پروتکل است که اجازه ی ارسال و دریافت داکیومنت ها در وب را میدهد، پروتکل قوانینی برای تبادل اطلاعات بین دو دستگاه در شبکه میباشد، یک پروتکل معروف دیگر پروتکل POP3 میباشد، پروتکلی که ممکن است برای واکشی اطلاعات روی هارد دیسکتان از آن استفاده کنید.
در HTTP دو قانون مختلف داریم : سرور و کلاینت، حقیقتا کلاینت همیشه آغازگر گفت و گو و سرور پاسخ دهنده است، HTTP بر اساس text پایه ریزی شده است، message ها در واقع بیت هایی از text هستند، البته بدنه ی message ها میتواند از مدیاهای دیگر نیز تشکل بشود، اینکه HTTP بر پایه ی text است باعث میشود مانیتور کردن تبادل اطلاعات در HTTP ساده تر شود.
مسیج های HTTP از header و body تشکیل شده اند، body میتواند خالی بماند، body در واقع منبعی برای ذخیره ی اطلاعاتی است که میخواهید این اطلاعات را در فضای شبکه منتقل کنید و این اطلاعات بر اساس دستورالعمل هایی که در header قرار دارد استفاده میشوند، header دارای metadata هست، یعنی یک سری اطلاعات کد شده در آن قرار دارد، اما در درخواست HTTP، محتوای هدر عموما متدهای مهم HTTP است، در حالت REST، داده های header اهمیت بیشتری از body دارند.

HTTP را جاسوسی کنید !

اگر از Developer Tool در کروم و یا Firebug در فایرفاکس استفاده میکنید، بر روی پنل Net کلیک کنید و آن را enable کنید، سپس میتوانید جزئیات اطلاعات HTTP را مشاهده کنید :
برای اینکه با HTTP بیشتر آشنا شوید میتوانید از کلاینت های اختصاصی مانند cURL استفاده کنید، cURL یک ابزار کامند لاینی است که بر روی سیستم عامل های مختلف قابل نصب است، هنگامی که cURL را نصب کنید، با تایپ کردن دستور :
curl -v google.com
میتوانید اطلاعات کامل HTTP را مشاهده کنید، درخواست ها با علامت < و پاسخ ها با علامت > نشان داده میشوند.

URL چیست ؟

URL ها برای شناسایی منابع به کار میروند، هر URL یک منبع مشخص دارد، در واقع صفحه ی وب یک منبع مشخص است و از طریق URL به آن دسترسی پیدا میکنیم، به یک مثال دیگر مراجعه میکنیم، یک برنامه که مدیریت لیست مشتریان یک شرکت را در بر دارد :
/clients
ما به تمام کلاینت ها اشاره کردیم
/clients/jim
ما به کلاینتی اشاره کردیم که نام "Jim" دارد.
در این مثال ها، hostname را در URL وارد نکرده ایم، hostname به این دلیل مهم است زیرا باید در تمام دنیای وب یکتا و منحصر به فرد باشد، اگر به صورت فنی بگوییم : "شما برای یک host یک request ارسال میکنید تا به resource آن دسترسی پیدا کنید" host به صورت جدا از resource path درون header قرار دارد.
حالا چگونه یک عملیات را مشخص میکنید ؟ برای مثال میخواهید یک رکورد جدید ساخته شود ولی بازیابی نشود ؟ اینجا جایی است که عملیات های مختلف HTTP وارد عمل میشود.

عملیات های مختلف HTTP

هر درخواست HTTP شامل یک سری عملیات خاص HTTP در قسمت header میباشد، به حروف بزرگ کلمه دقت کنید، متد زیر :
GET / HTTP/1.1
نشان میدهد که متد مورد استفاده GET است و متد زیر :
DELETE /clients/anne HTTP/1.1
نشان میدهد که از متد DELETE استفاده شده است.
به این عملیات مختلف به اصطلاح فنی HTTP verbs گفته میشود، HTTP verb به سرور میگوید که با داده ی شناسایی شده در URL چه کاری انجام دهد. اگر تاکنون با فرم های HTML کار کرده باشید یقینا با دو متد GET و POST آشنایی دارید، اما HTTP verb های بیشتری داریم. از مهم ترین آنها برای ساخت یک RESTful API میتوان GET ، POST ، PUT و DELETE را نام برد. متد های دیگری مانند HEAD و OPTIONS وجود دارد اما کمیاب تر هستند، اگر میخواهید راجع به تمام متدها اطلاعات کسب کنید میتوانید به اینجا مراجعه کنید.

GET

GET ساده ترین متد درخواست HTTP است، در این متد از طریق URL اطلاعات را منتقل میکنیم، داده نباید در سمت سرور توسط متد GET دچار تغییر شود، مد GET ، read-only میباشد اما هنگامی که کاربر داده را دریافت میکند میتوانیم هرگونه عملیاتی بر روی آن انجام دهیم، برای مثال فرمت داده را برای نمایش تغییر دهیم.

PUT

درخواست PUT زمانی استفاده میشود که میخواهید منبعی که در URL مشخص است را آپدیت کنید یا بسازید، برای مثال :
PUT /clients/robin
یک کلاینت به نام Robin در سرور میسازد، در request ما چیزی نیست که به سرور بگوید تا چگونه داده ی مورد نظر ساخته شود، فقط میگوید که ساخته شود، در cURL از طریق request دادن توسط d- میتوانید داده ها را بسازید :
curl -v -X PUT -d "some text"

DELETE

DELETE برخلاف PUT میباشد، برای زمانی استفاده میشود که میخواهید ریسورسی که توسط URL مشخص میشود را پاک کنید :
curl -v -X DELETE /clients/anne
به این طریق تمام داده ها همراه با ریسورس آن پاک میشود، داده ای که در مسیر clients/anne/ می باشد.

POST

POST عموما زمانی استفاده میشود که میخواهیم پردازش سمت سرور تکرار شود، زمانی که فرمی را باMETHOD یا روش POST ارسال می کنید ، در فایل PHP باید داده ای فرم را با متغیر POST دریافت نمائید، زمانی که داده های فرم را با متد POST ارسال می کنید ،  داده هایی که کاربر در فرم وارد کرده در نوار ادرس دیده نمی شود  و همچنین با روش POST محدودیتی در ارسال داده های فرم ندارید، برای ارسال اسم رمز و داده های حساس و مهم از این متد در فرم ها استفاده کنید.

محمد یه دانشجوی فناوری اطلاعات هست که از سال 92 فعالیتش رو شروع کرد، در حال حاضر در زمینه ی برنامه نویسی تحت وب و اندروید و شبکه های ارتباطی سیسکو فعالیت میکنه .

نظرات و سوالات کاربران

هنوز دیدگاه و یا سوالی ارسال نشده است.
هم اکنون شما اولین دیدگاه را ارسال کنید.