۷ زبان برنامه‌نویسی قدرتمند مناسب برای شروع کدنویسی


جهان پیرامون ما به شکل غیر قابل تصوری به سمت دیجیتالی شدن در حال حرکت است، به طوری که هر جنبه از زندگی ما متاثر از فناوری‌های دیجیتالی است. به همین دلیل تقاضا برای کارشناسان کامپیوتر روز به روز بیشتر می‌شود. بنابراین دانش کافی در مورد زبان‌های برنامه‌نویسی برای هر حرفه‌ای حائز اهمیت است. به بیان دقیق‌تر زبان‌های برنامه‌نویسی را باید قلب تپنده بسیاری از فناوری‌های آینده توصیف کرد.


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

واقعیت این است که یادگیری یک زبان برنامه‌نویسی برای افراد مبتدی تا حد زیادی دلهره‌آور است و از میان صدها گزینه‌ای که در این زمینه وجود دارد به سختی می‌توان گزینه درست را انتخاب کرد، اما صبر کنید، در این مقاله حمیدرضا تائبی قصد دارد ۷ مورد از زبان‌های برنامه‌نویسی سال ۲۰۲۱ که جزء برترین زبان‌ها هستند را به شما معرفی کند تا سطح مهارت‌های کدنویسی خود را افزایش دهید.
۱. جاوااسکریپت

جاوااسکریپت یکی از پر استفاده‌ترین زبان‌های برنامه‌نویسی حال حاضر است که تقریبا تمامی شرکت‌ها به نوعی از آن استفاده می‌کنند. حتا پلتفرم‌های اجتماعی محبوبی مثل فیس‌بوک، گوگل یا یوتیوب نیز از جاوااسکریپت در زیرساخت‌های خود استفاده می‌کنند. بخش عمده‌ای از شهرت و محبوبیت جاوااسکریپت به دلیل چارچوب‌های غنی و قدرتندی است که برای این زبان طراحی شده‌اند. از چارچوب‌های مهمی که پیرامون جاوااسکریپت پدید آمده‌اند باید به Node.JS اشاره کردکه یک مکانیزم اسکریپت‌نویسی سممت سرور در اختیارتان قرار می‌دهد. نه تنها در زمینه برنامه‌نویسی سمت کلاینت و سرور، بلکه در زمینه ساخت بازی‌های قدرتمند نیز جاوااسکریپت حرف‌های زیادی برای

گفتن دارد. بد نیست بدانید که برخی توسعه‌دهندگان نه تنها در زمینه وب، بلکه در زمینه یادگیری ماشین نیز از جاوااسکریپت استفاده می‌کنند.
۲. پایتون

اهمیت روزافزون داده‌ها در انجام فعالیت‌های تجاری موجب افزایش سریع محبوبیت و تقاضا برای پایتون شده است. پایتون در توسعه سمت سرور، برنامه‌های موبایلی و وب و ساخت برنامه‌های یادگیری ماشین به شکل گسترده‌ای استفاده می‌شود. هیچ کاری نیست که پایتون قادر به انجام آن نباشد. علاوه بر این، این زبان برنامه‌نویسی دارای مجموعه گسترده‌ای از کتابخانه‌ها، ابزارها و چارچوب‌هایی است که در زمینه علم داده‌ها و یادگیری ماشین استفاده می‌شوند. صرفنظر از توانایی پایتون در زمینه مدیریت و دستکاری داده‌ها، پایتون را باید یک زبان همه کاره توصیف کنیم. تقریبا تمامی آمارها نشان می‌دهند که تقاضا برای پایتون در سال‌های آتی روند صعودی خواهد داشت. یکی از مهم‌ترین عواملی که باعث شده تا پایتون مورد توجه شرکت‌ها و کاربران قرار بگیرد ترکیب نحوی ساده و کدنویسی مختصری است که ارائه می‌کند. پایتون عمدتا در ارتباط با علوم داده‌ها، هوش مصنوعی، یادگیری ماشین، برنامه‌نویسی بک‌اند و توسعه برنامه‌های وب و موبایل استفاده می‌شود. البته نباید از قدرت این زبان در ارتباط با اینترنت اشیا غافل شد.
۳. زبان برنامه‌نویسی Go

زبان برنامه‌نویسی Go کوتاه شده Golang است که توسط شرکت گوگل در سال ۲۰۰۷ میلادی به عنوان جایگزینی برای زبان‌های جاوا، سی و سی پلاس پلاس پیشنهاد شده است. پروژه‌های بزرگی مثل کوبرنتیس، زنجیره بلوکی و داکر از زبان گو با هدف دسترسی به قابلیت چند-ریسمانی و برنامه‌نویسی غیرهمزمنان استفاده می‌کنند تا فرآیند طراحی و پیاده‌سازی پردازه‌ها با سهولت انجام شود. برای مبتدیان زبان برنامه‌نویسی گو بهترین انتخاب است، زیرا به قابلیت‌های ارزشمند نظیر سادگی، سرعت، پویایی و محبوبیت نزد توسعه‌دهندگان حرفه‌ای تجهیز شده است. علاوه بر این، برای نوشتن برنامه‌های کاربردی برای شبکه بهترین انتخاب است. گو به‌طور عمده در ارتباط با برنامه‌نویسی گرافیکی، یادگیری ماشین، برنامه‌های کاربردی تلفن همراه، برنامه‌نویسی شبکه و برنامه‌نویسی سیستمی استفاده می‌شود.
۴. جاوا

اگر در نظر داشته باشیم در مورد یک زبان برنامه‌نویسی قدیمی که به بهترین شکل از پارادایم شی‌گرایی پشتیبانی می‌کند صحبت کنیم نباید از جاوا غافل شویم. جاوا یکی از قدیمی‌ترین زبان‌های برنامه‌نویسی است که محبوبیت بسیار زیادی نزد توسعه‌دهندگان دارد. جاوا هنوز هم یکی از محبوبت‌ترین و پرکاربردترین زبان‌هایی است که توسط توسعه‌دهندگان برای ساخت انواع مختلفی از برنامه‌ها استفاده می‌شود. جاوا در فهرستی که سایت  PYPL در ژوئن ۲۰۲۱ منتشر کرده در مکان دوم قرار دارد. جاوا به عنوان یک زبان برنامه‌نویسی همه‌کاره در ارتباط با ساخت برنامه‌های وب، اندروید، بانکداری، سازمانی، مالی، دسکتاپ و غیره استفاده می‌شود. علاوه بر این، جاوا در ارتباط با یکسری قابلیت‌های کاربردی نظیر گسترش‌پذیری، تخصیص و مدیریت حافظه، اارائه طیف گسترده‌ای از کتابخانه‌های کاربردی، واسط‌های برنامه‌نویسی غنی دست برنامه‌نویسان در ساخت برنامه‌های تنوع و قدرتمند را حسابی باز گذاشته است. یکی از مهم‌ترین نکاتی که در ارتباط با جاوا باید به آن اشاره کرد امنیت بالای برنامه‌هایی است که توسط این زبان ساخته می‌شوند. علاوه بر این جاوا در زمینه کار با داده‌ها عملکرد خوبی دارد و قادر است روی سیستم‌عامل‌های مختلف نیز اجرا شود. جاوا به دلیل ویژگی‌های کاربردی سطح بالایی که ارائه می‌کند، همواره مورد توجه قرار دارد. جاوا بیشتر برای توسعه برنامه‌های اندرویدی، توسعه وب، نرم‌افزارهای مالی و کسب و کار الکترونیک استفاده می‌شود.
۵. کاتلین

ما نمی‌توانیم این واقعیت را انکار کنیم که اندروید بزرگ‌ترین سیستم‌عامل حال حاضر جهان است که روی طیف بسیار گسترده‌ای از دستگاه‌های مصرف نصب شده است. علاوه بر این گوگل به طور رسمی اعلام کرد که کاتلین زبان اول توسعه برنامه‌های اندرویدی است. از این رو، برای افرادی که می‌خواهند به توسعه برنامه‌هایی برای اکوسیست اندروید وارد شوند، کاتلین بهترین انتخاب است. کاتلین یک زبان برنامه‌نویسی چند سکویی است که قابلیت همکاری خوبی در ارتباط با جاوا ارائه می‌کند. علاوه بر این، شما می‌توانید از کاتلین برای توسعه سمت سرور، توسعه وب، توسعه ابر، علم داده‌ها و موارد مشابه استفاده کنید. بنابراین یادگیری کاتلین می‌تواند به شما در پیشبرد یا بهبود کار خود به عنوان یک توسعه‌دهنده کمک فراوانی کند. کاتلین بیشتر برای توسعه برنامه‌های اندرویدی، توسعه وب، علم داده‌ها و توسعه سمت سرور استفاده می‌شود.
۶. PHP

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

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

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

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

کدنویسی چگونه می‌تواند به کودکان در حل مسائل خلاقانه کمک کند؟


قبل از آن‌که ساخت اپلیکیشن‌های نرم‌افزاری را یاد بگیرید، باید بدانید کدنویسی شامل یافتن راه‌حل‌های منطقی برای مسائل روزمره است که می‌توانند به‌صورت الگوریتم یا معادلات ریاضی بیان شوند. برنامه‌نویسان، ابتدا یک مسئله در دنیای واقعی را به یک سری مراحل (الگوریتم) و ساختار داده تقسیم می‌کنند. سپس این موارد به زبانی ساده بیان می‌شوند تا کامپیوترها قادر به درک آن‌ها باشند. سی، سی‌پلاس‌پلاس، جاوا، پایتون و غیره همگی زبان‌های برنامه‌نویسی هستند که هر کدام ساختار نحوی (Syntax) و قواعد خاص خود را دارند. انتخاب زبان کدنویسی به این موضوع بستگی دارد که کدنویس قرار است با چه دقت و شدتی با سیستم‌عامل و سخت‌افزار کامپیوتر کار کند. در نتیجه، تسلط بر زبان‌های سطح بالاتر مانند پایتون نسبت به زبان‌های سطح پایین‌تر مانند C آسان‌تر است. با این‌حال، در بحث آموزش کدنویسی به کودکان قرار نیست از همان ابتدا با مفاهیم پیچیده زبان‌هایی مثل سی‌پلاس‌پلاس روبرو شوند، بلکه هدف این است که منطق ساخت برنامه‌ها، نحوه کارکرد آن‌ها و کامپیوترها را درک کنند.

کدنویسی، یک زبان دیگر است

کد‌نویسی، مانند یادگیری یک زبان جدید است، با این تفاوت که به‌جای یادگیری زبان فرانسوی، اسپانیایی یا هر زبان دیگری، فرزند شما در حال یادگیری نحوه برقراری ارتباط با فناوری در زبان‌هایی مانند اچ‌تی‌ام‌ال، جاوا و پایتون است. مزایایی که یادگیری یک زبان جدید می‌تواند برای بچه‌ها به‌همراه داشته باشد، در مورد کدنویسی نیز صدق می‌کند؛ افزایش ظرفیت حافظه، تفکر انتقادی و حل مسئله، توانایی انجام چند کار، تقویت مهارت‌های گوش دادن و افزایش سطح تمرکز.

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

هنگامی که کودکان  زبان‌های برنامه‌نویسی را می‌آموزند، مجموعه دستورالعمل‌هایی که می‌نویسند، در نهایت توسط کامپیوتر به کد باینری پردازش و ترجمه می‌شود. کد باینری فقط از دو عدد تشکیل شده است: 0 و 1. در باینری، 0 به‌معنای نادرست/خاموش و 1 به‌معنای درست/روشن است. ترکیب 0 و 1 همان چیزی است که به سیستم‌های کامپیوتری می‌گوید چه کاری انجام دهند؛ مانند باز کردن یک صفحه، حرکت به سمت راست یا رفتن به مرحله بعدی. به همین ترتیب، کامپیوترها، ربات‌‌ها و سیستم‌ها می‌توانند داده‌هایی که ما در کدنویسی می‌نویسیم را پردازش کنند.

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

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

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

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

به‌طور معمول، کدنویسی و ریاضی اولین ترکیب مهارت‌ها هستند که والدین با آن و مزایای آن در ارتباط هستند و به همین دلیل می‌خواهند فرزندانشان کد‌نویسی را یاد بگیرند. بسیاری از مهارت‌ها در ارتباط مستقیم با یک‌دیگر هستند، بنابراین انجام آن‌ها آسان است. کد‌نویسی از جمله کاربردهای ریاضی در نظر گرفته می‌شود. ریاضی واقعی در کد‌نویسی‌هایی همچون شمارش، ابعاد، فاصله، شعاع، تکرار، اعشار، ربع دایره استفاده می‌شود و این فهرست می‌تواند ادامه داشته باشد!

کد‌نویسی غیر از این‌که فرد را با مهارت‌های پیشرفته‌تر ریاضی آشنا می‌کند، مزیت اصلی مهم دیگری نیز دارند؛ به‌طوری که به آن‌ها کمک می‌کند تا مفاهیم انتزاعی ریاضی را تجسم کنند و آن‌ها را به شکل ملموس‌تری درک ‌کند. به‌عنوان مثال، اگر کودکان یک نمونه واقعی و کاربردی از تقسیم داشته باشند که مرتبط با برنامه‌ای است که مشغول ساخت آن هستند، معمولاً کمتر از شمارش با دست استفاده می‌کنند، زیرا می‌توانند تجسم کنند که ½ یا ¼ چیزی، چه مقدار از آن است.

به‌طور معمول، مهارت‌های کدنویسی مقدماتی که با ریاضیات مرتبط است، شامل یادگیری درست، نادرست و شرطی است. به‌عنوان‌ مثال، در کدنویسی، اگر چیزی «درست» (روشن) یا «نادرست» (خاموش) باشد؛ ترجمه ریاضی آن چیزی برابر با 1 یا 0 است. به‌طور مثال در پلتفرم‌های آموزشی مخصوص کودکان مثل اسکراچ، اگر دهان گربه باز باشد (روشن/درست/1)، میو‌میو می‌کند، اگر دهان گربه بسته باشد (نادرست/خاموش/0) ساکت خواهد بود.

مطلب پیشنهادی:

    ۷ زبان برنامه‌نویسی قدرتمند مناسب برای شروع کدنویسی

چگونه کدگذاری توانایی‌های نوشتاری آکادمیک را بهبود می‌بخشد؟

فرآیند کدنویسی مشابه نوشتن به یک زبان خارجی است، بنابراین می‌تواند به بهبود توانایی‌های نوشتاری آکادمیک کمک کند. بسیاری از مراحل نوشتن در کدنویسی یکسان و آکادمیک هستند.

ابتدا، بچه‌ها باید یاد بگیرند که چگونه ایده‌های خود را برای یک برنامه، ساختاربندی و طرح‌ریزی کنند؛ دقیقاً همان کاری که هنگام نوشتن یک انشاء انجام می‌دهند. در پلتفرم‌های آموزشی مخصوص کودکان، توسعه‌دهندگان از مفاهیمی که سازنده‌های گرافیکی (Graphic Organizers) و نقشه‌های حبابی نام دارند، در همان مراحل ابتدایی فرآیند برنامه‌نویسی استفاده می‌کنند. سازمان‌دهی بیشتر با سازما‌ن‌دهی جزئیات در یک توالی انجام می‌شود. درست مانند نوشتن آکادمیک، برنامه‌ریزی برای نوشتن یک برنامه می‌تواند در طرح کلی پروژه انجام شود. در ساخت این طرح کلی، آن‌ها مشکلات و نقاط کانونی اصلی را که می‌خواهند از طریق برنامه به آن‌ها بپردازند، شناسایی می‌کنند. فرآیند نوشتن و برنامه‌نویسی دارای شباهت‌هایی است که فراتر از ساختاربندی و سازمان‌دهی است و آن تمرکز بر تحقیق است. تحقیق با این هدف انجام می‌شود که راه‌حل‌های بالقوه‌ای برای مشکلات شناسایی شوند. گام بعدی، شروع کدنویسی بر مبنای راه‌حل شناسایی شده است.
چگونه کدنویسی توانایی‌های حل مسئله را بهبود می‌بخشد؟

آموختن کدنویسی به بهبود توانایی‌های حل مسئله کمک می‌کند. هنگامی‌که برنامه‌نویسان در حال کدنویسی هستند، از زبان قابل‌فهم برای کامپیوترها برای حل یک مشکل استفاده می‌کنند. کدنویسان از زبان‌های برنامه‌نویسی برای ساخت برنامه‌ها یا ماژول‌هایی در ارتباط با موضوعات مختلف مثل نحوه خرید یک محصول از فروشگاه آنلاین، نحوه خاموش کردن چراغ‌ها از طریق تشخیص صدا، نحوه حرکت دادن یک شخصیت در یک بازی ویدیویی یا فیلم استفاده می‌کنند.

با آموختن کدنویسی، کودکان می‌توانند یاد بگیرند که برای حل یک مشکل، مسیرهایی ایجاد کنند. در این حالت، آن‌ها متوجه می‌شوند که ممکن است بیش از یک راه برای حل یک مشکل وجود داشته باشد. برای مثال، یک چالش حل مسئله که می‌توانید برای کودکان‌تان ایجاد کنید این است که از آن‌ها بخواهید دستورالعمل درست کردن ساندویچ یا ژله‌ را آماده کنند و سپس دستورالعمل‌های آن‌ها را دنبال کنید یا به آن‌ها در آماده‌سازی کمک کنید تا خروجی نهایی را مشاهده کنند. همه اقلامی که برای تهیه ساندویچ لازم هستند، ورودی‌ محسوب می‌شوند و خروجی نهایی ساندویچ است. این یک مقدمه کلاسیک برای فعالیت کدنویسی است.

همان‌گونه که آن‌ها دستورالعمل‌های خود را می‌نویسند و سعی می‌کنند آن‌ها را عملی کنند، متوجه می‌شوند که باید به عقب برگردند و مسیرهای خود را با افزودن یا حذف برخی مراحل، افزودن اقلام اضافی برای کمک به تهیه ساندویچ یا حذف مراحل تکراری، ویرایش کنند. به این‌کار اشکال‌زدایی می‌گویند. همچنین، ممکن است لازم باشد یک سری مراحل را در این فرآیند تکرار کنند، مانند قرار دادن قاشق در ظرف شیشه‌ای برای برداشتن ژله بیشتر و سپس پخش کردن آن با قاشق. در کدنویسی، این یک حلقه (Loop) است.

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

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

راه دیگر یادگیری حل مسئله، از طریق برنامه‌های روباتیک است. درست مانند یادگیری کدنویسی، دنیای رباتیک نیز همان مباحث که تفکر انتقادی و خلاقیت است را به‌تدریج به کودکان آموزش می‌دهد. به‌طور کلی، آموزش کدنویسی، مهارت‌های حل مسئله را بهبود می‌بخشد و اعتماد‌به‌نفس کودک شما را در آزمودن چیزهای جدید افزایش می‌دهد.
بهترین سن برای شروع کدنویسی چه سنی است؟

کودکان می‌توانند از 5 یا 6 سالگی شروع به یادگیری کدنویسی کنند. به‌طور معمول، بچه‌ها با استفاده از بلوک‌های کدنویسی ساده با برنامه‌نویسی آشنا می‌شوند و این به کودکان اجازه می‌دهد تا مکانیزم زبان‌های کدنویسی برای ساخت، حرکت اشیاء و ایجاد الگوها را بیاموزند. پس از مهارت در این مدل کدنویسی ساده، بچه‌ها  بیشتر به یادگیری زبان‌هایی مانند پایتون می‌پردازند. با این حال، بهترین زمان برای آموختن کدنویسی در کودکان، زمانی است که علاقه نشان می‌دهند و برای یادگیری هیجان‌زده هستند. در ادامه 5 نشانه را عنوان می‌کنیم که نشان می‌دهند کودکان شما احتمالاً برای این آموزش آماده هستند:

     به بازی‌های کامپیوتری و ویدیویی علاقه نشان می‌دهند و درمورد نحوه ساخت آن‌ها کنجکاو می‌شوند و تمایل نشان می‌دهند.
     آن‌ها متوجه می‌شوند که دوست دارند مشکل به‌وجود آمده را حل کنند و احتمالاً یک بازی، برنامه، وب‌سایت یا فناوری دیگر می‌تواند به آن‌ها در حل آن مسئله کمک کند.
     هنگامی که بازی می‌کنند، مشغول ساخت یا طراحی هستند؛ برای مثال، با لگو، عروسک، بلوک‌های خانه‌سازی و نمونه‌های مشابه.
     سؤالات اکتشافی می‌پرسند: می‌خواهم بدانم اگر من فلان کار را انجام بدهم چه اتفاقی می‌افتد، اگر این بلوک را از پایین برجم بردارم، یا همه این ماشین‌ها را با هم از این سطح شیب‌دار هل بدهم، یا اگر طبقه دیگری به خانه عروسکم اضافه کنم چه اتفاقی می‌افتد.
     یا این‌که ممکن است خیلی ساده به شما بگویند که می‌خواهند کدنویسی یاد بگیرند.

مطالعه‌ای که به‌تازگی انجام شده نشان می‌دهد 50 درصد مشاغل در استرالیا در 15 سال آینده، به دانش برنامه‌نویسی و مهارت‌های فناوری اطلاعات وابسته خواهند بود. بنابراین، این احتمال وجود دارد که توانایی کدنویسی، یکی از مهارت‌های کلیدی و متمایزکننده در آینده باشد.

۷ مشکل رایج شبکه و نحوه حل سریع آن‌ها

 

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


1. آدرس‌های IP تکراری

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

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

اقدام پیشگیرانه: می‌توانید با تغییر پیکربندی روتر خود برای شروع به تخصیص آدرس‌های DHCP در نزدیکی انتهای زیرشبکه، یک قدم ساده برای جلوگیری از بروز مشکل تداخل آدرس آی‌پی بردارید و آدرس‌های پایین‌تر را برای دستگاه‌هایی که نیازمند آدرس آی‌پی ثابت هستند، رزرو کنید.
2. در دسترس نبودن آدرس IP

برای رفع این مشکل باید از دستور ipconfig استفاده کنید. اگر ایستگاه کاری یا دستگاهی در شبکه یک آدرس آی‌پی داشته باشد که بابا 169.x.x.x شروع شود، به این معنا است که هیچ آدرس آی‌پی از سرور DHCP در دسترس نبوده تا به کلاینت اختصاص پیدا کند.

راهکار: کاربرانی که از اینترنت کابلی استفاده می‌کنند و روتر محلی ندارند، آدرس‌های IP را به صورت محدود و مستقیماً از ISP دریافت می‌کنند. این احتمال وجود دارد که آدرس‌های IP مجاز که توسط شرکت ارائه‌دهنده خدمات ی تخصیص پیدا می‌کند تمام شده است. برای حل این مشکل باید روتری خریداری کنید یا از اینترنت موبایل استفاده کنید تا یک آدرس آی‌پی مخصوص به خود را دریافت کنید. در این حالت مجموعه آدرس‌های محلی در اختیار دارید که دستگاه‌های درون شبکه محلی قادر به استفاده از آن‌ها هستند و هیچ‌گاه تمام نمی‌شوند.

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

اقدام پیشگیرانه: مهم است که هر شبکه متصل به اینترنت یک روتر محلی داشته باشد که با NAT و DHCP کار ‌کند تا هم مشکلات امنیتی به وجود نیاید و هم با مشکل کمبود آدرس روبرو نشوید. روتر باید تنها دستگاهی باشد که به مودم متصل است و همه دستگاه‌های دیگر از طریق روتر به شبکه متصل ‌شوند.
3. مشکلات DNS

خطاهایی مانند مسیر شبکه را نمی‌توان پیدا کرد، آدرس IP یافت نشد، یا نام DNS وجود ندارد، معمولاً می‌توانند به دلیل بروز مشکل در پیکربندی DNS به وجود آیند. ابزار خط فرمان nslookup می‌تواند به عنوان یک ابزار خوب برای مشاهده سریع تنظیمات DNS ایستگاه‌های کاری یا کلاینت‌ها استفاده شود.

راه‌حل: ایستگاه‌های کاری و سایر دستگاه‌های شبکه را می‌توان برای استفاده از سرورهای DNS خود، بدون توجه به سرور اختصاص داده شده توسط DHCP، پیکربندی کرد. برای یان منظور باید تنظیمات Internet Protocol Version 4 (TCP/IP) متعلق به آداپتوری که از آن استفاده می‌کنید را بررسی کنید تا مطمئن شوید ک سرور DNS به اشتباه پیکربندی نشده باشد و روی گزینه Obtain DNS server address automatically تنظیم شده باشد.

راه‌حل پیشگیرانه: روتر محلی شما ممکن است به گونه‌ای پیکربندی شود که به عنوان یک سرور DNS عمل کند و یک DNS از طریق سرورهای ISP به‌دست آورد. تنظیمات DHCP شبکه خود را تغییر دهید تا مستقیماً به سرورهای DNS دسترسی داشته باشید.
4. یک ایستگاه کاری قادر به اتصال به شبکه نیست

اگر هنگام باز کردن یک مرورگر وب فقط یک ایستگاه کاری پیام "No internet" را نشان می‌دهد، باید فرض کنیم که دیگر تجهیزات و مولفه‌های شبکه سالم هستند و تمرکز خود را روی سخت‌افزار و نرم‌افزاری که این پیغام را نشان داده معطوف کنیم.

راه‌حل: برای حل این مشکل شبکه، باید به سراغ عواملی که باعث قطعی ارتباط شده‌اند مثل کابل، سیگنال ضعیف WiFi، خرابی کارت شبکه یا درایورهای اشتباه نصب شده بروید. مطمئن شوید که آداپتور شبکه ایستگاه کاری با سرورهای IP، زیرشبکه و DNS صحیح پیکربندی شده است.

اگر با این کار مشکل حل نشد، نرم‌افزار فایروال دستگاه را بررسی کنید تا مطمئن شوید که پورت‌های لازم به شبکه خارجی باز هستند. پورت‌های رایج شامل 80 و 443 برای ترافیک وب، به علاوه 25، 587، 465، 110 و 995 برای ایمیل است.

اقدام پیشگیرانه: معمولاً بهتر است تمام تنظیمات TCP/IP ایستگاه کاری را به تخصیص خودکار (Automatically assigned) تغییر وضعیت دهید. از یک سرور DHCP برای ارائه یک پیکربندی یکنواخت به تمام دستگاه‌های موجود در شبکه استفاده کنید. اگر یک IP ثابت در یک ایستگاه کاری یا سرور خاص مورد نیاز است، اکثر سرورهای DHCP امکان ایجاد نگاشت IP استاتیک را فراهم می‌کنند.
5. نمی‌توان به Local File یا Printer Shares متصل شد

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

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

راه‌حل: می‌توانیم مشکلات اشتراک‌گذاری را به بهترین نحو با بررسی احتمالات به ترتیب زیر برطرف کنیم:

اطمینان حاصل کنید که سرویس‌های مورد نیاز در حال اجرا هستند. در سیستم‌های ویندوز، سرور، TCP/IP NetBIOS Helper، ایستگاه کاری و سرویس‌های مرتبط با مرورگر همگی باید اجرا شوند. در ماشین‌های لینوکسی، Samba مولفه اصلی مورد نیاز برای اشتراک‌گذاری با سیستم‌های ویندوز است.

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

اطمینان حاصل کنید که همه ایستگاه‌های کاری در یک زیر شبکه قرار دارند. این مشکل معمولاً فقط در شبکه‌های پیچیده ظاهر می‌شود، با این حال، حتی شبکه‌های ساده نیز گاهی دارای تجهیزات IP ثابت با زیرشبکه‌ای نامناسب هستند. نتیجه این است که ترافیک خارجی به خوبی انتقال پیدا می‌کند، در حالی که ترافیک داخلی به موانع غیرمنتظره‌ای برخورد می‌کند.

همه آداپتورهای شبکه ویندوز به  File and Printer Sharing for Microsoft Networks، Client for Microsoft Networks و فعال بودن NetBIOS over TCP/IP  نیاز دارند.

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

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

مطمئن شوید که HomeGroup به درستی پیکربندی شده است.

نوع شبکه روی Public تنظیم شده باشد.

مجوزهای NTFS به اشتباه پیکربندی نشده باشند.
6. شبکه محلی قادر به اتصال به اینترنت نیست

این وضعیت می تواند متناوب یا مداوم باشد. اغلب اوقات، سخت‌ترین جنبه بررسی مشکل در ارتباط با شبکه خارجی است. گاهی اوقات ممکن است چنین مشکلی باعث شود سازمان‌ها مجبور شوند به سراغ ارائه‌دهندگان خدمات اینترنتی دیگری بروند.

راه‌حل: راه‌اندازی مجدد روتر و مودم اولین کار است. در ادامه می‌توان از ابزار tracert برای شناسایی وقفه‌های ارتباطی استفاده کرد. در صورت لزوم اسکرین‌شاتی گرفته و آن‌را با شرکت ارائه‌دهنده خدمات اینترنت به اشتراک قرار دهید.

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

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

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

سرورهای DNS یکی از مولفه‌های مهم و ضروری اینترنت است اغلب نادیده گرفته می‌شوند. استفاده از سرورهای DNS نادرست می‌تواند منجر به ازدحام مسیریابی یا مشکلات تعادل بار شود. در حالی که شما معمولاً از تنظیمات DNS ISP خود استفاده کنید، آن‌ها ممکن است در واقع ترافیک را از طریق کش‌های وب بیش از حد بارگذاری شده مسیریابی کنند. می‌توانید به‌طور موقت تنظیمات DNS خود را برای استفاده از OpenDNS تنظیم کنید.

اقدام پیشگیرانه: اگر عملکرد اینترنت حیاتی است، باید مکانیزم‌های ارتباطی مختلف تهیه کنید. به‌طور مثال، ترکیبی از اینترنت ADSL، VDSL، موبایل یا فیبرنوری را تهیه کنید تا در صورت لزوم و هنگامی که شبکه با افت روبرو شود به سرعت گزینه دیگر سوییچ کنید. درست است که روش فوق هزینه‌ها را افزایش می‌دهد، اما حداقل مطمئن خواهید بود که در صورت عملکرد ضعیف یک شبکه به راحتی قادر به استفاده از گزینه جایگزین هستید. یک اپراتور محلی DSL ممکن است قابلیت اطمینان بهبود یافته را با هزینه کمی بالاتر ارائه دهد، اما برای عملکرد ثابت، ممکن است متوجه شوید که یک خط اجاره ای گران قیمت برای سازمان شما الزامی است.

 

برگرفته از مجله شبکه

nft چیست و چگونه کار میکند

 

 

 

 

رمز غیرقابل معاوضه NFT سرنام Non-Fungible Token چند وقتی است مورد توجه رسانه‌ها و کاربران قرار گرفته است، زیرا سازوکاری در اختیار افراد قرار می‌دهد تا بتوانند کارهای هنری خود را به نمونه دیجیتالی تبدیل کنند و آن ‌را آسان‌تر به‌فروش رسانده یا اثرهای هنری دیگران را خریداری کنند. همین مسئله باعث شده برای برخی مردم این پرسش مطرح شود که NFT چیست و چه کاربردهایی دارد. در این مطلب به چیستی و چرایی این فناوری نوظهور پاسخ می‌دهیم.


رمز غیرقابل معاوضه چیست؟

قبل از این‌که توضیحی در ارتباط با مفهوم رمز غیر قابل معاوضه یا همان توکن غیرمثلی ارائه کنیم، ابتدا باید به واکاوی این مسئله بپردازیم که مثلی‌بودن (تعویض‌پذیر بودن) با غیرمثلی بودن (غیرقابل‌ معاوضه) چه تفاوتی دارند. در علم اقتصاد، یک کالا یا پول در صورتی مثلی یا تعویض‌پذیر/قابل معاوضه (Fungible) شناخته می‌شوند که واحدهای آن با یکدیگر قابل ‌تعویض باشند و نتوان هیچ‌کدام از آن‌ها را کم‌ارزش‌تر یا با ارزش‌تر از دیگری توصیف کرد. به‌طور مثال، بیت کوین، دلار، ریال و سایر مسکوکات در گروه دارایی‌های مثلی قرار دارند. یک اسکناس 1000 تومانی نسبت به یک اسکناس 1000 تومانی دیگر از نظر ارزش برابر است و هر دو می‌توانند با یکدیگر تعویض شوند و مقدار کالای یکسانی را خریداری کنند. هنگامی که یک اسکناس 1000 تومانی به شخصی قرض می‌دهید، انتظار ندارید که دقیقا همان اسکناس را پس بگیرید. در نقطه مقابلِ دارایی‌های مثلی‌،‌ دارایی‌های غیرمثلی (Non-fungible) قرار دارند که به آن‌ها غیرقابل معاوضه نیز می‌گویند؛ به‌طور کلی می‌توان گفت هر چیزی که ابزار مبادله نباشد، غیرمثلی است. به‌طور مثال، لپ‌تاپ، تلفن همراه و خودروی متعلق به شما همگی در گروه دارایی‌های غیرمثلی قرار می‌گیرند. اگر خودروی خود را به دوست‌تان قرض دهید تا به مسافرت برود، انتظار دارید دقیقا همان خودرو را پس بگیرید یا بلیط کنسرت‌ها نمونه دیگری از توکن غیرمثلی هستند. در دنیای هنر، یک نمونه قابل ملموس دیگر، تابلوی شام آخر لئوناردو داوینچی است که غیرمثلی است. آیا کسی می‌تواند این اثر تاریخی را با یک تابلوی معمولی مبادله کند، با این ذهنیت که هر دوی آن‌ها تابلوی نقاشی هستند؟

نکته‌ای که باید در این ارتباط به آن دقت کنید این است که مثلی‌ بودن یا نبودن نسبی است و بستگی به دیدگاه ما دارد. به‌طور مثال، در مورد بلیط کنسرت اگر سه نوع بلیط طبقه پایین، طبقه بالا و جایگاه ویژه داشته باشیم، تمام بلیط‌های طبقه پایین نسبت به یکدیگر مثلی هستند، اما نسبت به بلیط‌های طبقه بالا و جایگاه ویژه غیرمثلی محسوب می‌شوند یا در مورد بلیط‌های طبقه پایین هم ممکن است بلیط قسمتی که نمای بهتری دارد نسبت به بلیط مکانی که زاویه دید خوبی ندارد غیرمثلی باشد؛ با این حال، برای تعیین مثلی ‌بودن یا نبودن، شرایط کلی در نظر گرفته می‌شود. مثلی‌ بودن یا نبودن یک چیز می‌تواند وابسته به تفکر شخصی باشد؛ همان‌گونه که اشاره کردیم یک اسکناس 1000 تومانی مثلی است، اما ممکن است یک اسکناس به‌خصوص که برای بقیه معادل همان 1000 تومان ارزش دارد، برای شما یادگاری یک فرد عزیز باشد و حاضر نباشید آن‌را با چند میلیون تومان معاوضه کنید.

در دنیای ارزهای دیجیتال و  زنجیره بلوکی، رمزغیر قابل معاوضه (NFT) اشاره به توکن دیجیتال یا به عبارت دقیق‌تر یک دارایی دیجیتال مثل ارزهای دیجیتال دارد که منحصربه‌فرد است. NFT روی زنجیره بلوکی ذخیره می‌شود و امکان معاوضه آن وجود ندارد؛ به بیان دقیق‌تر، این توکن تنها در اختیار مالک آن قرار دارد و NFT را نمی‌توان مثل اسکناس به‌طور مستقیم مبادله کرد، زیرا هیچ دو NFT با یکدیگر مشابه نیستند. درست مثل بلیت کنسرت که هیچ دو بلیتی با یکدیگر برابر نیستند و هر بلیت، منحصر‌به‌فرد است و اطلاعات مشخصی مانند نام خریدار، تاریخ کنسرت و شماره صندلی دارد. همین مسئله باعث می‌شود تا نتوان بلیت‌ها (توکن‌‌ها) را با یکدیگر معاوضه کرد. مهم‌ترین تفاوتی که توکن NFT با سایر آلت‌کوین‌ها دارد این است که شامل اطلاعات اضافی است که ارزش آن ‌را بیشتر از یک ارز خالص کرده است.

توکن‌های غیرمثلی مانند ارزهای دیجیتال روی کیف پول‌های دیجیتال ذخیره و منتقل می‌شوند و مالکیت یک NFT به فرد دارنده کیف پول (کلید خصوصی) تعلق دارد. این توکن‌ها چهار ویژگی مهم دارند که باعث متمایز شدن آن‌ها از ارزهای دیجیتال شده است.

    منحصربه‌فرد هستند: توکن‌های غیرمثلی یکتا هستند و هر کدام ویژگی‌های مخصوص به خود دارند که در سایر توکن‌ها نمونه آن ‌را مشاهده نمی‌کنید. به‌عنوان نمونه، یک خانه 200 متری در یک خیابان و با نمای خاص منحصر‌به‌فرد است و اگر توکن این خانه را بسازیم، توکن آن هم منحصربه‌فرد است.
    مالکیت حقیقی: شرکت فروشنده بلیط یک کنسرت یا مسابقه ورزشی به‌راحتی می‌تواند بلیطی که خریداری کرده‌اید را باطل کند. علاوه بر این، در بازی‌های آفلاین یا آنلاین امروزی، شما مالک واقعی یک آیتم بازی نیستید و این آیتم‌ها در خارج از بازی ارزشی ندارند. پرسش بدیهی‌تر این است که نام کاربری اینستاگرام شما واقعاً متعلق به خودتان است یا شرکت متا؟ در NFT‌ها این مسئله وجود ندارد. فناوری زنجیره بلوکی با استفاده از توزیع داده و رمزنگاری به کاربران مالکیت واقعی می‌دهد.
    قابلیت انتقال و معامله: توکن‌های غیرمثلی می‌توانند خیلی سریع روی کیف پول‌های دیجیتالی در موبایل و کامپیوتر شخصی انتقال پیدا کرده یا در صرافی‌ها معامله شوند. با کمک این نوآوری خیلی راحت می‌توانید یک آیتم بازی، بلیط و دارایی‌های دیگر را با پول واقعی به فروش برسانید یا در بازار آزاد از کاربران دیگر خریداری کنید.
    غیرقابل ‌تقسیم هستند: برای خرید بیت‌کوین ضرورتی ندارد که حتما یک واحد بیت کوین خریداری کنید. این ارز دیجیتال تا هشت رقم اعشار قابل‌‌تقسیم است و به‌عنوان مثال می‌توان 0.0001 از یک بیت‌کوین را خریداری کرد یا به‌دست آورد. درست مشابه با کاری که برخی از مرورگرهای رایج مثل براوو انجام می‌دهند. در مقابل، NFT‌ها قابل‌‌تقسیم نیستند و به شکل یک واحد کامل انتقال داده می‌شوند. شما نمی‌توانید 0.01  از یک بلیط یا 0.01  از یک آیتم بازی را خریداری کنید.

NFTها انواع مختلفی دارند، اما عمدتا در حوزه هنر دیجیتال، فایل موسیقی، ویدیو یا هر چیز منحصربه‌فردی که ارزش مادی دارد استفاده می‌شوند. برای این ‌که شناخت بهتری از این توکن‌ها داشته باشید باید خاصیت غیرقابل معاوضه آن‌ها را بررسی کنیم. فرض کنید، یک بیت‌کوین همواره برابر با یک بیت‌کوین است یا یک اسکناس یک دلاری با اسکناس یک دلاری دیگر یکسان است، اما این قاعده در ارتباط با کالاها صدق نمی‌کند. به‌طور مثال، یک تابلوی نقاشی کوبیسم اثر پیکاسو ارزشی دارد که در حراجی مشخص و به بالاترین پیشنهاد فروخته می‌شود؛ در حالی که یک تابلو نقاشی دالی ارزش خود را دارد. هنرمندانی که بخواهند آثار خود را به شکلNFT به‌فروش برسانند باید در یک فروشگاه ثبت نام و توکن‌های دیجیتالی را با بارگذاری و تایید اعتبار اطلاعات خود روی یک زنجیره بلوکی ضرب (Mint) کنند. این کار، هزینه‌ای در حدود ۴۰ تا ۲۰۰ دلار به‌همراه دارد. در ادامه، می‌توانند آثار خود را در فروشگاه‌هایی که برای این منظور در نظر گرفته شده‌اند ثبت کنند.
چه وجه تمایزی میان توکن قابل معاوضه و غیرقابل معاوضه وجود دارد؟

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

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

توکن‌هایی که منحصربه‌فرد باشند و به جای ارزش بتوانند اطلاعات را نگه‌داری کنند، ارزش بیشتری نسبت به دیگر توکن‌ها دارند. این نوع توکن‌ها که به‌نام توکن غیرقابل معاوضه شناخته می‌شوند در اتریوم با استاندارد ERC تعریف می‌شوند. توکن‌های قابل معاوضه و توکن‌های غیرقابل معاوضه مانند NFT بر ذخیره‌سازی اطلاعات تمرکز دارند. یک دارایی قابل معاوضه، به قابلیت آن برای مبادله با دیگر دارایی‌ها یا کالاها با ارزش یکسان اشاره دارد. NFTها توکن‌هایی غیرقابل معاوضه هستند و نمی‌توان‌ آن‌ها را با توکن‌های دیگر معاوضه کرد و ارزش خود را از کالای اختصاص یافته به آن‌ها دریافت می‌کنند. در نقطه مقابل توکن‌های قابل معاوضه بدون مشکل با یکدیگر معاوضه می‌شوند، زیرا ارزش یکسانی دارند. توکن‌های غیر قابل معاوضه، دارای ارزش پیشنهادی منحصربه‌فرد (Unique Value Proposition) هستند و هر یک شناسه خاص خود را دارند تا قابل تشخیص از دیگر توکن‌ها باشند. به دلیل همین ویژگی منحصربه‌فرد است که NFTها کمیاب هستند و به دلیل تقاضای زیاد ارزش بالایی دارند.
عملکرد NFT به چه صورتی است؟

رمزارزهای غیرقابل معاوضه بخشی از زنجیره بلوکی اتریوم هستند و به‌عنوان توکن‌هایی شناخته می‌شود که حاوی اطلاعات اضافه‌ای هستند. با توجه به این‌که رمزارزها، ارزشی در خود نگه‌داری می‌کنند، می‌توان آن‌ها را خرید و فروش کرد. همانند انواع مختلف آثار هنری، این ارزش توسط بازار و تقاضا تنظیم می‌شود. مشکل رایج دنیای امروز این است که کپی‌های مختلفی از یک اثر هنری کشیده می‌شوند که گاهی اوقات شناسایی نسخه واقعی از جعلی کار دشوار و هزینه‌بری است، در دنیای NFT این مشکل وجود ندارد (حداقل در زمان نگارش این مقاله)، زیرا هر تعداد نسخه دیجیتال از یک اثر هنری NFT در بازار پیدا شوند، هیچ‌کدام اطلاعات منحصربه‌فرد نسخه اصلی را ندارند. به بیان دقیق‌تر، با دانلود یک عکس نمی‌توانید صاحب آن شوید، زیرا این عکس، اطلاعات ذخیره شده‌ای ندارد که بتواند بخشی از زنجیره بلوکی اتریوم باشد.
چگونه NFT خریداری کنیم؟

NFT را می‌توان از طریق زیرساخت‌های مختلف خریداری کرد که البته به کیف پول آن زیرساخت نیاز دارید تا بتوانید آن‌را از طریق رمزارز شارژ کنید. به‌طور معمول، NFTها در حراجی‌های مختلف به‌فروش می‌رسند. البته برای حضور در این رویدادها باید از قبل ثبت نام و کیف پول خود را شارژ کنید تا بتوانید بالاترین قیمت‌ها را ‌پیشنهاد دهید. از نظر حجم معاملات در حال حاضر 7 پروژه برتر حوزه NFT که مورد توجه کاربران قرار دارند به شرح زیر هستند:

    AXIE INFINITY: فعال در زمینه بازی و نگه‌داری حیوانات خانگی دیجیتالی
    SUPERRARE: بازار معاملات مرتبط با آثار هنری دیجیتال
    SORARE: بازی فوتبال فانتزی مبتنی بر زنجیره بلوکی
    CRYPTOVOXELS: دنیای مجازی
    MAKERSPLACE: بازار معاملات آثار هنری دیجیتال.
    DECENTRALAND: دنیای مجازی
    CRYPTOKITTIES: بازی جمع‌آوری گربه‌های دیجیتالی.

علاوه بر این، از سایت‌های معروف در زمینه فروش NFT باید به Nifty Gateway، Foundation، VIV3، BakerySwap، Axie، Rarible، NFT ShowRoom، OpenSea و SuperRare اشاره کرد. به‌طور معمول، فعالیت در هر پروژه متفاوت از دیگری است، اما در حالت کلی برای کار در پروژه‌های NFT باید کارهای زیر را انجام دهید:

1. ورود به وب‌سایت پروژه موردنظر

ابتدا باید به وب‌سایت پروژه موردنظر وارد شوید. در حال حاضر بیشتر پروژه‌ها تنها روی نسخه دسکتاپ قابلیت اجرا دارند. به‌طور مثال، اگر بخواهیم در پروژه کریپتوکیتیز فعالیت کنیم، باید به سایت این پروژه‌ به نشانی cryptokitties.co برویم و روی دکمه start کلیک کنیم. برخی از پروژه‌ها نرم‌افزار مخصوص خود را دارند که باید از وب‌سایت پروژه دانلود و نصب شوند و فعالیت از داخل نرم‌افزار انجام شود.

2. نصب کیف پول

با توجه به این‌که پروژه‌های NFT غیرمتمرکز هستند، فعالیت در آن‌ها مستلزم داشتن کیف پول است تا پروژه بتواند با آن در ارتباط باشد و تراکنش‌ها را انجام دهد. در این حالت اگر توکنی در این پروژه‌ها خریداری کنید، آن توکن روی کیف پول متصل‌شده ذخیره می‌شود. هر پروژه ممکن است کیف پول خاصی را به کاربران پیشنهاد کند، اما در بیشتر پروژه‌ها کیف پول متامسک (Metamask) بهترین گزینه است. متامسک یک کیف پول متن‌باز و امن برای اتریوم است که به شکل افزونه روی مروگرهای کروم و فایرفاکس نصب می‌شود؛ با استفاده از این افزونه می‌توان به پروژه‌های غیرمتمرکز مبتنی بر اتریوم متصل شد و عملیات‌های مالی را انجام داد.

3. واریز اتر یا توکن دیگر به کیف پول به منظور فعالیت

در برخی از پروژه‌ها مانند کریپتوکیتیز و بازارهای آثار هنری، تنها راه فعالیت خرید توکن است. به‌طور مثال، اگر بخواهید در کریپتوکیتیز فعالیت کنید، باید ابتدا با پرداخت اتر گربه بخرید. در پروژه‌های دیگر مثل بازی‌ها، ابتدا نیاز به خرید چیزی نیست و می‌توان به‌صورت رایگان هم فعالیت کرد.
چه افرادی از NFT استفاده می‌کنند؟

در حال حاضر، NFTها بیشتر توسط هنرمندان، برندهای تجاری و گیمرها استفاده می‌شود. فضای جدیدی که NFT برای هنرمندان به وجود آورد، سبکی جدید از خلق، نمایش و فروش آثار هنری به‌وجود آورده است. علاوه بر کاربردهای بالا، NFTها به منبع درآمدی برای برندهای تجاری تبدیل شده‌اند. اکنون می‌دانیم به کمک NFT می‌توان برای عکس‌ها یا توییت‌ها ارزش مشخصی در نظر گرفت. به‌طور مثال، جک دورسی، مدیرعامل و موسس توییتر نخستن پیام خود در این شبکه اجتماعی را در یک حراجی دیجیتال به مالک پلتفرم فروشنده رمزارز بریج اوراکل (Bridge Oracle) به قیمت 2 میلیون و 900 هزار دلار فروخت. این معامله بر مبنای فناوری NFT انجام شد.

کلام آخر

یک توکن غیرمثلی، دارایی دیجیتال منحصربه‌فردی است که روی زنجیره بلوکی ذخیره و انتقال داده می‌شود. این توکن‌ها مانند ارزهای دیجیتال هستند، اما برخلاف آن‌ها، هر واحد NFT می‌تواند با واحد دیگر متفاوت باشد و ویژگی‌های خاص خود را داشته باشد. توکن غیرمثلی دو مزیت اصلی مالکیت حقیقی (غیرمتمرکز) و امکان انتقال و معامله آسان روی کیف پول‌های دیجیتال را برای کاربران دارند. NFT‌ها را می‌توان روی هر زنجیره بلوکی که از قرارداد هوشمند پشتیبانی می‌کند، ایجاد کرد، اما در حال حاضر کاربران ترجیح می‌دهند از زنجیره بلوکی اتریوم استفاده کنند و بیشتر پروژه‌ها نیز روی این زنجیره بلوکی قرار گرفته است. بازار NFT هنوز کوچک است و امروزه کاربرد این نوع توکن بیشتر در حوزه‌هایی مانند بازی‌های کامپیوتری، آثار هنری دیجیتال، صدور بلیط و فروش نام‌ دامنه‌ها دیده می‌شود، اما به تدریج با رشد زیرساخت‌ها می‌توان از این فناوری در حوزه‌های مختلفی استفاده کرد. مهم‌ترین نکته‌ای که باید در مورد خرید و فعالیت در پروژه‌های NFT به آن دقت کنید، ضرر و زیان‌های مالی یا کلاه‌برداری است، زیرا این حوزه نوظهور است و هنوز روش‌های کلاه‌برداری در آن به‌درستی شناسایی نشده و سوء تعبیر در ارتباط با برخی قوانین آن وجود دارد.

 

برگرفته از مجله شبکه

 

 

 

وقتی URL را در مرورگر تایپ و کلید اینتر را فشار می‌دهید چه اتفاقی می‌افتد؟

 

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

بیایید فرض کنیم که می‌خواهید به maps.google.com وارد شوید تا زمان دقیقی را که طول می‌کشد تا از محل کار به میز شام رستوران برسید را بررسی کنیم.

1. maps.google.com را در نوار آدرس مرورگر خود تایپ می‌کنید.
2. مرورگر حافظه پنهان را برای یک رکورد DNS بررسی می‌کند تا آدرس آی‌پی مربوط به maps.google.com را پیدا کند.

سامانه نام دامنه DNS یک پایگاه داده است که نام وب‌سایت و آدرس آی‌پی خاصی را که به آن مرتبط است نگه‌داری می‌کند. هر URL در اینترنت دارای یک آدرس آی‌پی منحصر به فرد است. در این‌جا، آدرس IP اشاره به کامپیوتری دارد که میزبان سرور وب‌سایتی است که ما درخواست دسترسی به آن‌را داریم. به عنوان مثال، www.google.com دارای آدرس آی‌پی 209.85.227.104 است. بنابراین اگر مایل هستید، می توانید با تایپ http://209.85.227.104 در مرورگر خود به www.google.com دسترسی پیدا کنید. DNS فهرستی از URLها و آدرس‌های آی‌پی متناظر به آن‌ها را در اختیار دارد. با این توصیف باید بگوییم که عملکردی مشابه دفترچه تلفن دارد که فهرستی از نام‌ها و شماره تلفن‌ها درون آن یادداشت شده‌اند.

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

برای یافتن رکورد DNS، مرورگر چهار کش را بررسی می‌کند.

● ابتدا کش مرورگر را بررسی می‌کند. مرورگر یک مخزن از سوابق DNS را برای یک بازه زمانی ثابت برای وب‌سایت‌هایی که قبلاً بازدید کرده‌اید نگهداری می‌کند. بنابراین، اولین مکانی است که یک پرس‌و‌جو DNS را اجرا می‌کند.

● دوم، مرورگر حافظه پنهان سیستم عامل را بررسی می‌کند. اگر در حافظه پنهان مرورگر اطلاعاتی نباشد، مرورگر به سراغ کش سیستم‌عامل می‌رود و سعی می‌کند رکورد موردنظر را پیدا کند. لازم به توضیح است که سیستم عامل کش پنهانی دارد که رکوردهای DNS را نگهداری می‌کند.

● سوم، کش روتر را بررسی می‌کند. اگر در رایانه شما اطلاعات موردنیاز نباشد، مرورگر با روتری که کش پنهان رکوردهای DNS را نگهداری می‌کند، ارتباط برقرار می‌کند.

● چهارم، کش ISP را بررسی می‌کند. اگر همه مراحل با شکست مواجه شوند، مرورگر به سراغ ISP می‌رود. ISP سرور DNS خاص خود را دارد که شامل مجموعه‌ای از رکوردهای DNS است. مرورگر سعی می‌کند آدرس اینترنتی را از کش DNS بازیابی کند.

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

3. اگر URL درخواستی در حافظه پنهان نباشد، سرور  سامانه نام دامنه شرکت ارائه‌دهنده خدمات اینترنتی یک جستجوی DNS را برای یافتن آدرس IP سروری که maps.google.com را میزبانی می‌کند، آغاز می‌کند.

همان‌طور که قبلا اشاره شد، برای این‌که کامپیوتر من به سروری که میزبان maps.google.com است متصل شود، به آدرس آی‌پی maps.google.com نیاز دارم. هدف از پرس‌و‌جوی DNS جست‌وجوی چندین سرور DNS در اینترنت است تا زمانی که آدرس IP صحیح وب‌سایت را پیدا کند. این نوع جستجو، جست‌وجوی بازگشتی نامیده می‌شود، زیرا جستجو به‌طور مکرر از یک سرور DNS به یک سرور DNS ادامه می‌یابد تا زمانی که آدرس IP مورد نیاز ما را پیدا کند یا یک پاسخ خطا نشان دهد که قادر به یافتن آن نیست.

در این شرایط، ما سرور سامانه نام دامنه شرکت ارائه‌دهنده خدمات اینترنتی را یک بازگشت‌کننده DNS می‌نامیم که مسئولیت آن یافتن آدرس IP مناسب نام دامنه مورد نظر با پرسش از سایر سرورهای DNS در اینترنت برای پاسخ است. سایر سرورهای DNS، سرورهای نام (Name Servers) نامیده می‌شوند، زیرا آن‌ها جست‌وجوی DNS را بر اساس معماری دامنه نام دامنه وب‌سایت انجام می‌دهند.

بدون این‌که شما را بیشتر گیج کنم، می‌خواهم از نمودار زیر برای توضیح معماری دامنه استفاده کنم.

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

برای maps.google.com، ابتدا ارتباطی با سرور نام ریشه (root name server) انجام می‌شود. سرور نام ریشه درخواست را به سرور نام دامنه .com هدایت می‌کند. سرور نام .com این درخواست را برای سرور نام google.com هدایت می‌کند. سرور نام google.com آدرس IP منطبق برای maps.google.com را در رکوردهای DNS خود پیدا می‌کند و آن را به Recursor DNS شما برمی گرداند و در نهایت  به مرورگر شما بازگردانده می‌شود.

این درخواست‌ها با استفاده از بسته‌های داده‌ای کوچک ارسال می‌شوند که حاوی اطلاعاتی مانند محتوای درخواست و آدرس IP مورد نظر است (آدرس IP بازگشت‌کننده DNS). این بسته‌ها قبل از این‌که به سرور DNS صحیح برسند، از طریق تجهیزات مختلف شبکه که میان کاربر و سرور قرار دارند انتقال داده می‌شوند. این تجهیزات از جداول مسیریابی استفاده می‌کنند تا بفهمند کدام راه سریع‌ترین راه ممکن برای رسیدن بسته به مقصد است. اگر این بسته‌ها گم شوند، مبدا با دریافت پیغام خطایی از این موضوع مطلع می‌شود. اگر مشکلی نباشد، بسته‌ها به سرور DNS صحیح می‌رسند، آدرس IP صحیح را می‌گیرند و به مرورگر شما باز می‌گردند.
4. مرورگر یک اتصال TCP را با سرور آغاز می‌کند

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

برای انتقال بسته‌های داده بین رایانه کاربر و سرور، مهم است که یک اتصال TCP برقرار شود. این اتصال با استفاده از فرآیندی به نام دست‌دهی سه طرفه TCP/IP انجام می‌شود. این یک فرآیند سه مرحله‌ای است که در آن کاربر و سرور پیام‌های SYN (همگام‌سازی) و ACK (تأیید) را برای ایجاد یک اتصال مبادله می‌کنند.

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

2. اگر سرور پورت‌های باز داشته باشد که می‌تواند اتصالات جدید را بپذیرد و راه‌اندازی کند، با پیغام تأیید بسته SYN و با استفاده از بسته SYN/ACK پاسخ می‌دهد.

3. کلاینت بسته SYN/ACK را از سرور دریافت می‌کند و با ارسال یک بسته ACK آن‌را تایید می‌کند.

سپس یک اتصال TCP برای انتقال داده برقرار می‌شود!
5. مرورگر یک درخواست HTTP را به وب‌سرور ارسال می کند

هنگامی که اتصال TCP برقرار شد، زمان شروع انتقال داده است! مرورگر یک درخواست GET برای صفحه وب maps.google.com ارسال می‌کند. اگر در حال وارد کردن اعتبارنامه یا ارسال فرم هستید، این درخواست می‌تواند یک درخواست POST باشد. این درخواست همچنین حاوی اطلاعات اضافی مانند شناسایی مرورگر (عنوان کاربر-عامل)، انواع درخواست‌های که باید پردازش شوند (سرآیند پذیرش)، و همچنین سرآیندهای اتصال مبتنی بر TCP برای درخواست‌های اضافی است. همچنین اطلاعات دریافت شده از کوکی‌هایی را که مرورگر برای این دامنه ذخیره کرده است ارسال می‌کند.



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

سرور شامل یک وب‌سرور (یعنی Apache، IIS) است که درخواست را از مرورگر دریافت می‌کند و آن را به یک کنترل‌کننده درخواست ارسال می‌کند تا بخواند و پاسخ بدهد. کنترل‌کننده درخواست برنامه‌ای است (نوشته شده در ASP.NET، PHP، Ruby و غیره) که درخواست، سرآیندها و کوکی‌های آن‌را می‌خواند تا آنچه درخواست شده است را بررسی کند و در صورت نیاز اطلاعات روی سرور را به‌روز کند. سپس پاسخی را در قالب خاصی (JSON، XML، HTML) آماده می‌کند.
7. سرور یک پاسخ HTTP ارسال می‌کند

پاسخ سرور شامل صفحه وب درخواستی شما و همچنین کد وضعیت، نوع فشرده‌سازی (Content-Encoding)، نحوه کش کردن صفحه (Cache-Control)، هرگونه کوکی برای تنظیم، اطلاعات حریم خصوصی و غیره است.


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

● 1xx فقط یک پیام اطلاعاتی را نشان می‌دهد.

● 2xx نشان دهنده موفقیت است.

● 3xx کلاینت را به URL دیگری هدایت می‌کند.

● 4xx نشان‌دهنده خطا است.

● 5xx نشان‌دهنده خطای سرور است.

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

مرورگر محتوای HTML را به صورت مرحله‌ای نمایش می‌دهد. ابتدا، اسکلت HTML را پردازش و نمایش می‌دهد. سپس تگ‌های HTML را بررسی می‌کند و درخواست‌های GET را برای عناصر اضافی در صفحه وب ارسال می‌کند، مانند تصاویر، شیوه‌نامه‌های CSS، فایل‌های جاوا اسکریپت، و غیره. در نهایت محتویات آدرس maps.google.com به‌طور کامل در مرورگر شما ظاهر می‌شود.

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

امیدوارم این مقاله به شما کمک کرده باشید تا پاسخ این پرسش که وقتی یک آدرس اینترنتی را در مرورگر تایپ می‌کنید و اینتر را فشار می‌دهید چه اتفاقی می‌افتد را دریافت کرده باشید.

بگرفته از وبسایت شبکه

شروع با پیشران

شرکت پیشران صنعت ویرا با اساس نامه اتوماسیون صنعتی و کنترل ابزار دقیق و ساخت تابلوهای برق فشار قوی و ضعیف  از سال 92 تاسیس گشت و ازهمان ابتدا در حوزه کاربرد ابزار دقیق در bms و سپس تولید و ساخت آنها قدم نهاد و در ادامه  مسیر توانست با اتکا به تجربیات چندین ساله و استخدام نیروهای متخصص  برق عملا جزو شرکتهایی باشد که محصولات قابل اتکایی با عناوین  مانیتورینگ شرایط محیطی اتاق سرور -کنترلرهای دمای دیتا سنتر -دیتالاگرهای سردخانه و انبار -هشدار دهنده های دمای یخچال و فریزر و شمارشگرهای نمایشگاهی و فروشگاهی و تابلوهای برق متنوع با کاربردهای مختلف روانه بازار نماید در حال حاضر سیستمهای کنترل دما و رطوبت اتاق سرور این شرکت تنها سیستم مبتنی بر سخت افزار صنعتی plc-hmi  در ایران است.

 تماس با پیشران    رزومه وپروژها

مشتریان پیشران

شرکتها - موسسات - ادارات دولتی و مشتریان خصوصی پیشران صنعت ویرا موسسات مشتریان پیشران صنعت شرکت های مشتری پیشران صنعت ویرا ادارات مشتری پیشران صنعت ویرا مشتریان ما