امروز داشتم یک ویدیو آموزشی نگاه میکردم و یه بخشی مرتبط با DNS بود. همینطور که استاد عزیز از دانشجو ها سوال میپرسید، من سعی میکردم که تو ذهنم جواب بدم. بالافاصله متوجه شدم که از جوابام ۸۰ درصد یا ۷۰ درصد مطمعنم. مثلا ساده ترین نمونه اش:
etc/hosts چک میشهبعد با خودم گفتم که اینجوری اصلا جالب نیست، مثلا من میخوام هانتر بشم باید حدالاقل سوال به این سادگی رو بتونم با قاطعیت جواب بدم.
مشکل اینجاس که اگه شما از بک گراند برنامه نویسی داری میای احتمالا خیلی چیزارو به صورت تجربی بلدی، مثلا به صورت abstract میدونی DNS چیه و چطور کار میکنه، قبلا باهاش سرو کله زدی، ولی هیچوقت ارزششو نداشته که بری بشینی و دقیق بشی ببینی این چطور داره کار میکنه، ولی خب این توهم رو داری که آره من بلدم. ( من در مورد HTTP هم همین بودم، که بحثش جداست )
خلاصه کلام اینه که امشب نشستم و سعی کردم در سریع ترین زمان ممکن چند تا knowledge gap هامو پر بکنم و اینجا داکیومنتش کنم، شاید به کار تو هم اومد.
dig میزنم دقیقا چه اتفاقی میفته؟!من همیشه تصور میکردم که dig با getaddrinfo کارو در میاره. اگه تو هم همچین فکری میکردی، بهت تبریک میگم! تو یک نوب هستی. 🎉
چیشد که اینو فهمیدم؟ من یه سرور لوکال همینجور ران داشتم که که resolve میشه به یه دامین لوکال به اسم http://iis.lab. این فایل etc/hosts منه:

بعد هرکار میکردم dig اینو گردن نمیگرفت و میگفت که این NXDOMAIN عه. از من اصرار، از dig انکار:

حالا همینو curl میزدم عین آدم کار میکرد:

رفتم بالاسر گراک و اونم خیلی مصمم میگفت نه حاجی همه چی درسته و باید از etc/hosts بخونه:

بعد ده پونزده دقیقه دیباگ و استیصال، برگشتم و فهمیدم که گراکم نوبه:
