تصویر حسین نائیجی
حسین نائیجی

غرق در دنیای صفر و یک

در قسمت قرار هست مفصل در مورد URL , URI , URN صحبت کنیم.

URIs

هر منبع در وب سرور یک نام دارد، بنابراین clientها می توانند به منابع مورد نظر خود اشاره کنند.
نام منبع سرور یک uniform resource identifier یا URI نامیده می شود. URI ها مانند آدرس های پستی اینترنتی هستند که به طور منحصر بفردی منابع اطلاعاتی را در سراسر جهان شناسایی و مکان یابی می کنند.
در اینجا یک URI برای یک منبع تصویر در سرور وب فروشگاه سخت افزار Joe آمده است: https://cesecurity.ir/wp-content/uploads/2021/11/WEB.jpg
در تصویر زیر نشان می دهد که چگونه URI پروتکل HTTP را برای دسترسی به منبع jpg به‌نام WEB در سرور فروشگاه جو مشخص می کند. با توجه به URI، HTTP می تواند شی را بازیابی کند.
در URI دو نوع دیگری به نام URL و URN وجود دارند. حالا بیایید نگاهی به هر یک از این نوع شناسه های منابع بیندازیم.

URLs (uniform resource locator)

 درواقع URL بخشی از URI هست و URL به مکان یک منبع خاصی که بر روی یک سرور است اشاره می‌کند. و دقیقا به این اشاره می‌کند که چطور منابع را دریافت کنیم. در مثال زیر میتوانید دقیقا ببینید چطور مکان منبع مشخص شده و حتی چطور می‌شود به آن دست یافت.

  • http://www.oreilly.com/index.html
  • http://www.joes-hardware.com/inventory-check.cgi?item=12731
  • ftp://joe:tools4u@ftp.joes-hardware.com/locking-pliers.gif

URLها به صورت استاندارد سه بخش مهم دارند .

اولین بخش از یک URL به نام scheme است، توضیع می‌دهد که پروتکل استفاده شده چطور می‌تواند به منابع دسترسی پیدا کند. معمولا پروتکل HTTP است. که به صورت ( //:http ) مشخص شده است.

بخش دوم آدرس اینترنتی یا آدرس IP است. برای مثال : www.cesecurity.ir

بخش سوم در واقع اشاره به محل قرار گیری منبع دارد که برای مثال می‌تواند : uploads/2021/11/WEB.jpg

تصویر زیر می تواند منظور مطلب را برساند.

URNs

دومین بخش از URI یک URN است. URN به یک نام منحصر به فرد یا unique name است. و به name یا نام یک منبع خاص اشاره دارد. مستقل از آن است که منابع دقیقا در کجای سرور قرار دارند. می‌توان گفت location-independent یا مستقل از مکان است.

Transactions

اجازه دهید با جزئیات بیشتر نگاه کنیم که یک client با استفاده از http چطور با web server ارتباط برقرار می‌کند. و منابع آن را درخواست می‌کند.
یک ارتباط مبتنی بر  HTTP حاوی Request command که ( client به سمت web server ) ارسال می‌کند  و Respond results که از ( web server به سمت client ) ارسال می‌شود.
این ارتباط با فرمت بلاک‌ها یا Formatted-block اتفاق می افتد که آن را HTTP Message گویند.

به تصویر زیر نگاه کنید.

Methods

پروتکل HTTP ریکوئست کامند (Request command) های مختلفی را پشتیبانی می‌کند. که به آن HTTP methods می‌گویند.
و هر HTTP request message که از سمت عامل کاربر یا Client ارسال می‌شود دارای یک method است.
این method به سرور می‌گوید که چه رفتاری باید در برابر این request نشان دهد. اینکه web page را ارسال کند یا برنامه‌ای اجرا کند یا حتی فایلی را قرار داده یا حذف کند و بقیه موارد دیگر.

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

  • GET : از سرور می‌خواهد منبع‌ای که درخواست شده را به سمت client ارسال کند.
  • PUT : با این متد می‌شود داده یا data را در سرور ذخیره یا قرار داد.
  • DELETE : با این متد می‌شود داده یا data را از روی سرور حذف کرد.
  • POST : با این متد می‌شود داده یا data را به سمت وب سرور ارسال کرد.
  • HEAD : با این متد تنها headerها درخواستی منبع از سمت وب سرور ارسال می‌شود.

در قسمت‌های آتی بیشتر با آن‌ها آشنا می‌شوید.

Status Codes

هر HTTP response message که ارسال می‌شود به سمت Client دارای یک Status Code است. که به Client نشان می‌دهد که درخواست یا Request آن چه وضعیتی داشته است.
این کد وضعیت از سه کد عددی تشکیل شده است. بخشی از HTTP Status code را در تصویر زیر می‌بینید.

در تصویر بالا کد وضعیت 200 به معنای عملیات موفقیت آمیز بوده است. یا کد وضعیت 302 اشاره به redirect شدن دارد یا کد وضعیت 404 که بدین معنی است که چیزی یافت نشد و نتوانست منابع را پیدا کند.
در اینجا اشاره‌ای به status code یا کد وضعیت شده است باید توجه داشت این کد‌ها عددی هستند و تعداد این کد‌ها بسیار زیاد است. و فهمیدن آن که هر کد چه کاری را انجام می‌دهد بسیار سخت است.
بنابر این در HTTP response در کنار Status code یک reason phrase وجود دارد که status code را به صورت human-readable توضیع می‌دهد. برای مثال 200 success در کنار status code 200 یک reason phrase وجود دارد که آن را به صورت قابل مفهموم برای انسان توضیع می‌دهد. در اینجا به success توجه کنید. که بیان دارد عملیات با موفقیت امیز انجام شده است. این یک reason phrase است.