ایشون تیم برنرز لی (Timothy John Berners-Lee) هستن کسی که احتمالاً اسمش رو با عنوانهای مخترع وب (WWW), HTML , URL , HTTP و موسس W3C شنیده باشید که سال ۲۰۰۴ از ملکه الیزابت دوم مدال شوالیه هم گرفت!

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

کسی که تاریخ رو خونده باشه به دو چیز مجهز میشه، اول عدم تکرار اشتباهات و توانایی درک که این که آخر این مسیر احتمالا چی در انتظار ما هست و دوم توانایی داشتن تخمین دقیقتری از آینده. از این دو مورد میشه برای حداکثر کردن فرصتها و حداقل کردن شکست ها کمک گرفت. این مطالب رو من با دیدی ترکیبی نوشتم، پس پیشنهاد میکنم شما هم صرفا از دید فنی و مهندسی نبینید بلکه روی ابعاد دیگر مثل روانشناسی، اقتصادی و مدیریت هم فکر کنید تا بتونید حداکثر سود رو از این مطلب ببرید.
اگر این مطلب واستون مفید بود ممنون میشم به هر روشی که خودتون میدونید اون رو به حتی شده یک نفر دیگه برسونید و این میتونه برای من انگیزهای بشه تا مطالب بیشتری از این جنس تهیه و منتشر کنم.سایر مقاله ها رو هم میتونید در صفحه ویرگول ببینید. در صفحه لینکدین مطالب کوتاه رو میذارم و میتونیم اونجا با هم در ارتباط باشیم. استفاده از مطالب مقاله با ذکر نام و لینک به مطلب آزاد هست.
محمد ابراهیمی اول / نگارش بهار ۱۴۰۴ / ویرایش دوم
بیاین از نقطه صفر شروع کنیم، از آغاز خلقت چیزی که به اون می گیم اینترنت! البته نه، بیاین به عمق بیشتری بریم و از منفی شروع کنیم، از جایی که ایده اینترنت مطرح شد و هنوز هیچ چیزی وجود نداشت!
اگر گوگل کنید "اینترنت کی خلق شد" می رسید به سال ۱۹۸۳؛ زمانی که پروتکل TCP/IP که توسط وینت سرف (Vint Cerf) (مشهور به پدر اینترنت) و همکارش باب کان (Bob Kahn) طراحی شده بود به عنوان استاندارد رسمی ARPANET در نظر گرفته شد؛ اما این صرفا یک تاریخ رسمی هست و تمام حقیقت نیست چون ایده اینترنت و حتی همین پروتکل TCP/IP دهها قبل تر خلق شده بودن و حتی خود ARPANET خیلی وقت بود که داشت فعالیت میکرد! بریم با ببینیم حقیقت چی هست!

ایده اولیه اینترنت رو جوزف کارل رابنت لیکلایدر (J. C. R. Licklider) در ۱۹۶۰ (حدود ۲۳ سال قبل از نقطه آغاز رسمی) در دانشگاه MIT مطرح کرد. اون درباره مفهومی با عنوان "Intergalactic Computer Network" نظریه پردازی کرد و طرحی رو مطرح کرد که هدفش شبکه ای جهانی از کامپیوترها برای اشتراک داده به صورت زنده (Real-Time) بود و این نقطه واقعی و بنیادی آغاز خلقت اینترنت بود.
نقطه ای که ذهن افراد متخصص رو درگیر کرد و موسسات پروژهشی مثل ARPA رو وارد فاز تحقیق و توسعه. بعدها لیکلایدر عضو ARPA شد و در توسعه ARPANET که نسخه اجرایی طرح خودش بود مشارکت کرد.

نه سال بعد از ایده پردازی لیکلایدر (۱۹۶۹) آژانس پروژه های تحقیقاتی پیشرفتهٔ دفاعی آمریکا (ARPA) با هدف ارتباط بین کامپیوترهای دانشگاهی و نظامی در زمان جنگ سرد با هدف افزایش سرعت تولید علم در حوزه دفاعی و نظامی شبکه ARPANET رو خلق کرد. البته این آژانس ۲ سال قبل از طرح لیکلایدر (۱۹۵۸) و برای اهداف پروژهی پیرامون رقابت های جنگ سرد تاسیس شده بود و نه صرفا برای ایجاد شبکه ARPANET.

اولین پیام با این شبکه در اکتبر ۱۹۶۹ بین دانشگاههای UCLA و Stanford ارسال شد و اولین شبکهای بود که با روش انتقال داده پکت سوئیچینگ (packet-switching network) استفاده میکرد. این روش برخلاف روش سنتی و مرسوم اون زمان یعنی سوئیچینگ مداری (circuit switching) نیاز به اشغال یک کانال ثابت تا پایان اتصال نداشت.
در روش سنتی سوئیچینگ مداری (circuit switching) که تلفنهای آنالوگ از اون استفاده میکردن؛ بین دو گره در شبکه یک ارتباط فیزیکی ثابت برقرار میشد و دادهها بدون تغییر خاصی در طول این خط ارتباطی منتقل می شدن. این شبکه ساده و ارزان بود ولی چون خط ارتباطی ثابتی تا پایان ارتباط دو گره اشغال میشد کارایی و بهرهوری بسیار پایینی داشت. علاوه بر این چالشهایی مثل امنیت پایین و ضعف این شبکه در مقابل حملات هستهای باعث شد تا در دوران جنگ سرد امریکاییها دنبال شبکهای بدون این نقصها باشن.

همه جا گفته میشه که اولین بار Packet Switching توسط ARPANET در سال ۱۹۶۹ بکارگرفته شد ولی پاول باران (Paul Baran) و دونالد دِیویس (Donald Davies) کسانی بودن بین سالهای ۱۹۶۰ تا ۱۹۶۹ روی این روش ارتباطی به صورت جدا کار کرده بودن.
اولین بار پاول باران (آمریکایی) در سال ۱۹۶۰ در مقابل ضعف شبکه سنتی در حملات هستهای پیشنهاد داد که اطلاعات به جای عبور از یک مسیر ثابت، به بستههای کوچک تقسیم بشن که از مسیرهای مختلف حرکت کنن و حدود دو سال هم روی این موضوع تحقیق و توسعه کرد ولی اسم مشخصی برای این مدل نذاشت اما دقیقا همین اصول packet switching رو توصیف میکرد.

در سال ۱۹۶۵ دونالد دیویس (انگلیسی) بدون اطلاع از طرح پاول باران (چون نظامی و مخفی بود) طرحی مشابه اون رو با هدف رفع چالشهای شبکه سنتی سوئیچینگ مداری ارائه داد و از اصطلاح "packet" برای اولین بار استفاده کرد. دیویس در طی حدود ۴ سال تلاش شبکه آزمایشی NPL Network رو با همین معماری پیاده سازی کرد ولی برخلاف ARPANET که حمایت مستقیم و نیاز عملیاتی وزارت دفاع آمریکا با بودجهای بالا داشت NPL بودجهای محدود و تقاضایی آزمایشی داشت.

این پروژه در حد تحقیقاتی و اثبات مفهومی (Proof of Concept) ماند. شاید اگر بریتانیا مانند وزارت دفاع آمریکا از پروژه NPL حمایت میکرد الان ما باید در مورد این شبکه که سالها قبل از ARPANET استارت خورده بود صحبت میکردیم!
به طور خلاصه، در روش انتقال داده پکت سوئیچینگ دادهها به بستههای کوچک تقسیم میشدند و هر بسته میتوانست از مسیر متفاوتی به مقصد برسد، سپس در مقصد دوباره به هم چسبیده و بازیابی میشدند. این روش انتقال نیاز به یکسری اصول و قواعد داره تا با اون در مبدا داده تقسیم بشه بعد در شبکه مسیریابی بشه و سپس در مقصد مثل قطعات یک پازل به هم متصل بشن تا داده اولیه تشکیل و تحویل گیرنده داده بشه و برای این کار در شبکه ARPANET از پروتکل NCP (Network Control Protocol) استفاده شد.
انگیزه ساخت اولین پروتکل سطح بالا رو ARPA ایجاد کرد. اون از دانشگاهها خواست تا برای شبکه پکت سوئیچینگ ARPANET خودش یک پروتکل ارتباطی ایجاد کنن.
پس از درخواست ARPA گروه مشهوری به نام Network Working Group (NWG) که استیو کراکر (Steve Crocker) دانشجوی دکتری در UCLA رهبر اون بود روی این موضوع شروع به کار کرد. در این تیم افراد تاثیر گذار بودن از جمله وینت سرف (Vint Cerf) خالق پروتکل TCP/IP که به پدر اینترنت مشهور هست، جان پوستل (Jon Postel) مرد افسانهای دنیای اینترنت، مسئول ثبت پروتکلها و خالق پروتکل ارسال ایمیل SMTP و ری تاملینسون (Ray Tomlinson) کسی که اولین ایمیل رو فرستاد، هم از اعضای NWG بودن.
پس از مدتی کار فشرده در آخر کراکر با کمک تیمش پروتکل NCP (Network Control Protocol) رو رو در سال ۱۹۶۹ خلق کرد و به عنوان اولین پروتکل ARPANET مورد استفاده قرار گرفت.

طراحی یک پروتکل در شرایطی که ماشینها سختافزارها، سیستمعامل و حتی زبانهای برنامهنویسی متفاوتی داشتن کار سادهای نبود! مهندسا میگفتن: "ما حتی نمیدونیم چطوری یه پیغام ساده بفرستیم بین دو ماشین متفاوت!"
نمیدونستن آیا باید اتصال دائمی باشه یا ارتباط بستهای؟ مشکل هماهنگسازی شماره پورتها و فرمت بستهها رو داشتن و باید یه چیزی شبیه به سشن (session) طراحی میکردن که از Packet Switching بتونه استفاده کنه.
۱.۵.۱.۱) اولین RFC: چون موضوع پیچیده، تعداد جلسات زیاد و همه چی دائماً در حال تغییر بود کراکر یه تصمیم جالب گرفت و گفت:"ما یه سری یادداشت غیررسمی مینویسیم که اسمش رو میذاریم RFC — Request For Comments".اولین RFC یعنی شماره 1 در آوریل ۱۹۶۹ توسط خودش نوشته شد و همین RFCها بعدها شد مبنای توسعه اینترنت.

پروتکل NCP برای شروع گزینه خوبی بود ولی نقصهای جدیای هم داشت.خیلی سفارشی طراحی شده بود و فقط درون ARPANET جواب میداد و نمیتونست چند شبکه مختلف رو متصل کنه و علاوه بر این راهکاری برای اطمینان از تحویل بستهها مثل TCP امروزی نداشت.
در این پروتکل چیزی به نام IP address به شکل امروزی وجود نداشت و آدرسدهی در NCP ساده، لوکال و در فایلی به نام hosts.txt انجام میشد که چیزی شبیه به این بود:
عدد سمت چپ host number معادل IP امروزی که فقط داخل ARPANET معنی داشت، بعد اسم که hostname و نام قابلفهمی برای انسان بود میآمد که کارکردی شبیه به نام دامنه امروزی داشت و در اخر خط هشتگ برای توضیح اختیاری.
1 UCLA-NMC # UCLA Network Measurement Center 2 SRI-ARC # Augmentation Research Center 3 UCSB-CMPSC # UC Santa Barbara Computer Science 4 UTAH-10 # University of Utah
این فایل به صورت دستی توسط NIC (Network Information Center) در SRI (Stanford Research Institute) نگهداری و بروزرسانی میشد و همهی کامپیوترهای شبکه باید این فایل رو از NIC میگرفتن و تو سیستم خودشون کپی میکردن. وقتی تعداد میزبانها زیاد شد (مثلاً از دهها به صدها یا هزارها رسید)، دیگه نگهداری ومدیریت دستی hosts.txt ممکن نبود و اینجا بود که نیاز به آدرسدهی ساختاریافته (IP)، مسیریابی خودکار بین شبکهها و سیستم نام دامنه (DNS) به شدت احساس شد.
یک سال پس از خلق NCP و استفاده در ARPANET وینت سرف (Vint Cerf) و همکارش باب کان (Bob Kahn) شروع به طراحی پروتکلی که نقصهای NCP رو پوشش بده کرد ولی تا سال ۱۹۷۰ خیلی جدی دنبال نمیشد اما به مرور که نقصهای NCP بیشتر به چشم میآمد اونها تصمیم گرفتن جدیتر کار کنن برای همین در ۱۹۷۳ به صورت جدی و رسمی کار طراحی TCP/IP رو استارت زدن. به مرور تعریف این پروتکل وسیعتر و مرز IP و TCP هم واضحتر میشد؛ اونها در سال ۱۹۷۸ تصمیم گرفتن برای فهم و توسعه راحتتر پروتکل TCP و IP رو به دو پروتکل مستقل تقسیم کنن که TCP مسئول کنترل انتقال تعریف شده و IP هم مسئول آدرسدهی و مسیریابی بود.

۱.۵.۲.۱) اولین نسخه IP
اولین نسخه IP در سال ۱۹۷۰ در همان طرح اولیه وینت سرف طراحی شد که به IP V1 مشهور هست. بعدها با جدیتر شدن طراحی و توسعه TCP/IP نسخه جدیدی تحت عنوان IP V2 خلق شد. بعدها این نسخه توسعه پیدا کرد و IP V3 تعریف شد که برای اولین بار در ژانویه ۱۹۸۰ طی RFC 760 معرفی شد. تمام این نسخهها همواره در تحقیقات آزمایشگاهی بکار رفتن و هیچ وقت مورد استفاده فراگیر و عمومی قرار نگرفتن.
۱.۵.۲.۲) اولین نسخه رسمی IP
در سپتامبر ۱۹۸۱، حدود یک سال و نیم بعد از معرفی IP V3، نسخه جدید طی RFC 791 به صورت نهایی و رسمی و با نام IP V4 معرفی شد که بعدها به عنوان نسخه مرجع برای پیادهسازیهای گسترده مورد استفاده قرار گرفت.ساختار آدرس معرفی شده 32 بیتی بود و میشد حدود ۴ میلیارد آدرس یکتا با اون تولید کرد.

در اون زمان که هنوز اینترنت به شکل فراگیری امروزی نبود، چنین تعدادی خیلی کافی به نظرم میرسید ولی پس از عمومی شدن اینترنت خیلی طول نکشید تا آدرسها تمام شد! البته با وجود کمبود آدرس همچنان این نسخه فراگیرترین نسخههای IP هست.
۱.۵.۲.۳) آخرین نسخه رسمی IP
برای رفع چالش تعداد IP به صورت رسمی در ۱۹۹۸ نسخه جدید IP V6 طی RFC 2460 معرفی شد. این آدرس 128 بیتی هست که 340 تریلیون تریلیون تریلیون آدرس یکتا رو میشه با اون تولید کرد ولی با وجود مزایای بسیار این آدرس به دلیل عدم پشتیبانی دستگاههای قدیمی، پیچیدگی بیشتر و نیاز به آموزش هنوز مهاجرت به IPv6 کامل نشده.
بین نسخه 4 و 6 یک نسخه 5 معروف به Stream Protocol هم طی RFC 1190 و RFC 1819 معرفی شد که طراحی شد بود برای انتقال جریانهای صوتی و تصویری در زمان واقعی (real-time) بود ولی هرگز جایگزین IPv4 نشد و چون این نسخه با نام IP V5 معرفی شده بود بعدا در معرفی نسخه جدید مجبور شدن از نام IP V6 استفاده کنن.
قبل از پروتکل TCP/IP تعداد گرههای شبکه کم بود و هر گره یک استم و یک شماره داشت که در فایل hosts.txt نگهداری میشد. نحوه ارتباط خیلی شبیه به کار کردن با دفتر تفلنهای قدیمی بود که ما برای تماس با هر کسی که میخواستیم یه نگاه به اون می انداختیم و اسم فرد رو پیدا می کردیم و بعد شماره تلفنش رو با تلفن میگرفتیم.
وقتی که در سال ۱۹۸۳ پروتکل TCP/IP به صورت رسمی استاندارد ARPANET شد، ارتباط در اینترنت بر پایه آدرسهای IP مستقیم انجام میشد و خیلی طول نکشید تا مدیریت لیستی از نامها و آدرسها پیچیده و به نوعی ناممکن بشه.
برای رفع این مشکل در سال ۱۹۸۳، پاول موکاپتریس (Paul Mockapetris) سیستمی توزیعشده و سلسلهمراتبی به نام (Domain Name System) DNS را ابداع کرد. اون طرح اولیه خودش رو در RFC 881 و مدتی بعد در RFC 882 مطرح کرد که بعد با RFC 1034 و RFC 1035 در سال ۱۹۸۷ تکمیل و نهایی شد.

ساختار DNS یک ساختار سلسله مراتبی و توزیع شده هست که توسط هزاران سرور DNS نگهداری میشه و نهادهای ICANN (The Internet Corporation for Assigned Names and Numbers) و IANA (The Internet Assigned Numbers Authority) متولی جهانی مدیریت ریشه و تخصیص دامنهها و نگهدارنده لیست دامنههای سطح بالا (مانند .com، .org، .ir) هستن.

به طور خلاصه سیستم DNS نامهایی مثل www.example.com رو به IPهایی مثل 93.184.216.34 تبدیل میکنه و چنین ترتیبی داره:

اما این همه واقعیت نیست!
تا اینجا یعنی بین سالهای ۱۹۶۰ تا ۱۹۸۳، هر چی گفتیم در مورد یک شبکه مخفیِ دولتی با هدف پژوهش در امور نظامی بود و با چیزی که ما به اسم اینترنت میشناسیم خیلی فاصله داشت.
این فاصله با کلی حادثه و چالش همراه بود و به این راحتیها اینترنت امروزی خلق نشد. بذارید حرف اخر رو اول بزنم! سر هر چیز ریز و درشتی ابتدا یک گروهی مخالف بودن و هر چقدر هم که نفوذ و جایگاه این گروههای مخالف (متخصص فنی، دانشگاهی، نظامی و دولتی) بالاتر بود سالهای بیشتری طول کشید تا اون تغییر رخ بده.

البته که در اخر تمام این تغییرات یا خودشون اتفاق افتادن یا نسخه توسعه یافتهای ازشون رخ داد. به این شکل که یا افراد مخالف به مرور نفوذ و قدرتشون کم شد یا هم این که گروه موافق تغییر به مرور میتونستن خودشون صاحب نفوذ بشن یا افراد با نفوذ رو به عضویت بگیرن و در این تقابل دست بالاتری پیدا کرده و پیروز بشن.
در ادامه روی این چالشهایی که در مسیر تغییرات بزرگ مثل عمومی شدن اینترنت تمرکز میکنیم تا بببینم این تغییرات چطور آغاز شدن، چه چالشهایی رو پشت سر گذاشتن و نهایتا چطور موفق و فراگیر شدن.
از ۱۹۶۹ که ARPANET خلق شد روی مخفی بودن این شبکه خیلی تاکید میشد. مخصوصا از سمت گروهی از نظامیان و دولتیهای محافظه کار با دلایلی مثل به خطر افتادن امنیت دادههای حساس نظامی و افتادن به دست دشمنان و غیرنظامیها و همچنین احتمال بکارگیری دشمن از این تکنولوژی علیه امریکا با آشکار شدن این شبکه مخالفهایی جدی میشد.
یکی از افراد پیگیر آشکار شدن این شبکه، لری رابرتز (Lawrence (Larry) Roberts) پدر ARPANET و معمار کلیدی این شبکه بود که همواره برای قانع کردن مقامات تلاش میکرد و به در بسته میخورد. اون توضیح میداد که با این کار میشه دستاوردهایی کسب کرد مثل اثبات موفقیت پروژه، که از این طریق میشد در جنگ سرد دست بالاتر امریکا رو نشون داد و علاوه بر این میشه از این شبکه برای افزایش سرعت توسعه و انتقال علم در سایر دانشگاهها و رشته نیز استفاده کرد و در کنارش از این دانشگاهیان برای توسعه سریعتر، بیشتر و بهتر این شبکه کمک گرفت.
پس از ۳ سال تلاش نهایتا به کمک جمعی از علاقمندان به آشکارسازی تونستن وزارت وزارت دفاع آمریکا رو راضی کنن و سال ۱۹۷۲ وزارت دفاع آمریکا اجازه داد تا ARPANET در یک همایش عمومی به نمایش گذاشته بشه و به مخالفان که همچنان سر و صدا می کردن تأکید میکرد هیچگونه اطلاعات نظامی یا محرمانهای در این نمایش نیست و اتفاقاً با جذب حوزهٔ غیرنظامی، میشه اکوسیستم قویتری برای توسعه درست کرد.
در رویداد International Computer Communication Conference (ICCC) برای اولین بار شبکه ARPANET بهصورت عمومی به نمایش گذاشته شد که طی اون ARPA اتصالات بلادرنگ (real-time) بین بیش از ۳۰ نقطه مختلف از سراسر آمریکا رو نمایش داد.

در این رویداد بازدیدکنندهها میتونستن با ترمینالها (Terminal) کار کنن و از راه دور به دادههای دانشگاههای دیگه دسترسی داشته باشن. این لحظه خیلی مهمی هست و میشه این لحظه در سال ۱۹۷۲ رو سال آغازی بر شروع فراگیری اینترنت معرفی کرد که طی اون عموم مردم (خصوصاً محققان و صنعتگران) دیدن چنین چیزی وجود داره و همین زمینه و انگیزهای برای توسعه بیشتر اون شد.
در سال ۱۹۷۰ وینت سرف (Vint Cerf) و باب کان (Bob Kahn) پروتکل TCP/IP رو طراحی و معرفی کردن (یک سال پس از آغاز به کار ARPANET و پروتکل NCP و دو سال قبل از آشکارسازی) اما مدیران دولتی و فنی اون زمان حاضر نبودن به جای NCP که متمرکز و دولت محور بود از TCP/IP غیرمتمرکز استفاده کنن و در حدود ۱۴ سال هم این تفکر بسته رو موفق شدن که ادامه بدن.
اونها این کار رو برای امنیت داده ها مخاطره آمیز میدونستن و شبکه های بسته با نظارت و کنترل کامل رو بهتر میدونستن. البته گروهی از این مخالف ها هم افرادی بودن که با شبکه های متمرکز سنتی حس راحتی میکردن و بشون عادت کرده بودن و این تغییر رو بیهوده میدیدن.
در نهایت پس از ۱۳ سال تلاش افرادی مثل پاول باران (Paul Baran) ، وینت سرف (Vint Cerf) و باب کان (Bob Kahn) و محسوستر شدن محدودیتها و مشکلات NCP نهایتا ARPA متقاعد شد تا بجای پروتکل NCP از TCP/IP به عنوان یک استاندارد ارتباطی استفاده کنه که همونطور که قبلا گفتم این شد نقطه آغاز رسمی اینترنت اما هنوز هم اینترنت با این که آشکار شده بود و پروتکلی غیرمتمرکز هم پیدا کرده بود محدود به مصارف نظامی چند دانشگاه و مرکز نظامی بود و بقیه مردم و دانشگاههیان ازش محرورم بودن.

با اتفاق سال ۱۹۷۲ همه فهمیدن که یه همچین چیزی هم هست ولی این لحظه بیشتر حکم نشون ظرف شکلات به یک بچه و بعد محروم کردنش از خوردن رو داشت چون هیچ کس حق نداشت ازش جز در اون مراکز دانشگاهی نظامی خاص استفاده.
تا اینکه در سال ۱۹۸۵ NSFNET (National Science Foundation Network) که یک شبکهٔ کامپیوتری توسط بنیاد ملی علوم امریکا (NSF) ساخته شد که در ابتدا محدود به کشور امریکا و فقط برای اتصال دانشگاهها و مراکز تحقیقاتی بود. در واقع تقاضای سایر رشتهها و دانشگاهها برای دسترسی به اینترنت از یک سمت و کند مشکلات ARPANET از طرف دیگه باعث شد تا بنیاد ملی علوم امریکا برای ایجاد یک شبکه جدا دست به کار بشه.

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

نهایتا پس از سالها تلاش افراد و دانشجویان علاقمند به عمومی شدن و پیگیری شرکتهایی مثل CompuServe و AOL که قصد فروش اینترنت عمومی رو داشتن در تاریخ ۱۹۹۰ طی یک حرکت انقلاب گونه شبکه ARPANET رسماً خاموش شد و انحلال کامل شبکه نظامی اعلام شد و کنترل شبکه به شرکتهای مخابراتی و زیرساختهای غیرنظامی واگذار شد و اینترنت تبدیل شد به یک «زیرساخت جهانی» که قابل خصوصیسازی و تجاریسازی بود و میشه گفت این نقطه رسمی پیدایش اینترنت عمومی هست.
شبکه NSFNET با این که اصلا برای عمومی شدن اینترنت تلاش نمیکرد و به نوعی هم مخالف این اتفاق بود، باعث این اتفاق شد البته این اتفاق نهایتا به انحلال خودش ختم شد. در ۱۹۹۵ بخاطر رشد فعالیت شرکتهای زیرساخت شبکه خصوصی مثل MCI، Sprint، AT&T واگذار و به نوعی منحل شد. در واقع تلاشی که برای انحلال رقیب میکرد نهایتا منجر به انحلال خودش شد!
با دیدن این روند تکاملی شاید بگیم سال ۱۹۹۰ سال خلق اینترنت امروزی هست!! البته در این سال هنوز اینترنت توسط مردم انچنان استفاده نمیشد چون زیرساختها هنوز دولتی بودن و سالها طول کشید شرکتهای خصوصی وارد این حوزه بشن و ابتکار عمل رو دست بگیرن و از اون طرف ابزارها و سرویسهای اینترنت هنوز خیلی پیچیده بودن و نیاز به دانش فنی بالا داشتن. چیزی که اینترنت رو برای مصارف عمومی و تجاری مناسب کرد سرویسی به نام وب و نرم افزاری به نام مرورگر بود.
برخی به اشتباه تصور میکنن وب و اینترنت یک چیز هستن! بیاین قبل بررسی حاشیههای پیدایش وب، ببینیم به لحاظ ساختاری و مفهومی این دو چی هستن و قبل از وب چه سرویسهایی بکار گرفته میشد.
اوایل ۱۹۷۰ واژههایی مثل "internetworking" استفاده میشد ولی واژهٔ "Internet" که از ترکیب "Interconnected Networks" (شبکههای بههمپیوسته) گرفته شده در مقالهای مشهور توسط Vint Cerf و Bob Kahn (مخترعان TCP/IP) برای اشاره به شبکهای از شبکهها بهکار رفت و زمانی که ARPANET رسماً به TCP/IP مهاجرت کرد، اصطلاح "Internet" بهطور رسمی تثبیت شد.
امروزه به یک شبکه عمومی و جهانی از شبکههای کامپیوتری که با استفاده از پروتکل TCP/IP به هم متصلاند و به تبادل داده، خدمات و منابع میپردازند اینترنت میگن ولی اون زمان نه جهانی بود و نه عمومی تا این که سال ۱۹۹۰ محدودیتها برداشته شد و اینترنت با تعریف امروزی تونستن به معنی پیدا کنه.
تا پیش از پیدایش وب روی این شبکه امکان دریافت و ارسال ایمیل، انتقال فایل، دسترسی به فایلها و اطلاعات روی سیستمها از راه دور ممکن بود و کاربران (که اکثراً محققان، مهندسان یا دانشجویان بودند) از طریق ترمینالهای متنی به اینترنت وصل میشدن .
۳.۱.۱) پروتکل انتقال فایل FTP (File Transfer Protocol) که در سال ۱۹۷۱ توسط ابهی بوشان (Abhay Bhushan) برای انتقال فایل که کاربران برای اپلود و دانلود فایل با اون به سرور متصل میشدن.
۴.۱.۲) پروتکل دریافت ایمیل POP (Post Office Protocol) که اولین بار در ۱۹۸۴ توسط تیمی در دانشگاه کالیفرنیای جنوبی (USC) معرفی شد که طی اون ایمیلها دانلود و بعد از سرور پاک میشن و به نام POP1 شناخته میشه. در سال ۱۹۸۵ نسخه POP2 و در سال ۱۹۸۸ هم نسخه POP3 امروزه هم رایج هست توسعه داده شد. در اصل، این پروتکل طراحی شده بود برای کاربرانی که مدام به اینترنت وصل نبودن (مثلاً با مودم) تا ایمیلها دانلود و سپس از سرور پاک بشن و به نوعی شبیه آنچه در واقعیت بود یعنی دریافت نامه از پستچی طراحی شد.
۳.۱.۳) پروتکل دریافت ایمیل IMAP (Internet Message Access Protocol) که نسخه IMAP1 در سال ۱۹۸۶ توسط مارک کریسپین (Mark Crispin) از دانشگاه استنفورد خلق شد که برخلاف POP، ایمیلها روی سرور باقی میمونن و کلاینت فقط یک کپی از اونها رو میگیره که مناسب برای کار با چندین دستگاه بود. در ۱۹۸۸ نسخه IMAP2 منتشر و بعد در 1991 نسخه IMAP3 طی RFC 1203 مطرح شد ولی هیچوقت به عنوان یک RFC کامل و رسمی تصویب نشد چون خیلی پیچیده بود واسه همین کریسپین تصمیم گرفت تا IMAP رو یک باز طراحی اساسی و جدی کنه که نهایتا ختم شد به انتشار نسخه IMAP4 که امروز هم استفاده میشه.
۳.۱.۴) پروتکل ارسال ایمیل SMTP (Simple Mail Transfer Protocol) که در سال ۱۹۸۲ جان پوستل (Jon Postel) طی RFC 821 اون رو مطرح کرد و به عنوان استاندارد رسمی ارسال ایمیل معرفی شد و امروزه هم از همین پروتکل برای ارسال ایمیل استفاده میشه.
یکسری پروتکل دیگه هم بودن که امروزه جایگزین شدن مثل پروتکل Telnet که در اوایل ۱۹۷۰ برای ورود به سیستم از راه دور ایجاد شده بود و چیزی شبیه SSH امروزی بود البته ناامن!
در کل هم کار کردن با این پروتکلها تا قبل پیدایش وب و عمومی شدن اینترنت پیچیده، تخصصی و در محیطی غیرگرافیکی انجام میشد تا این که با عمومی شدن از یک سمت و پیدایش وب از سمت دیگه ورق برگشت!
وب یک سرویس اینترنتی هست که توسط تیم برنرز لی (Timothy John Berners-Lee) خلق شد. اون یک تفاوت عمده و اساسی با بقیه سرویسهای موجود داشت «داشتن رابط کاربری گرافیکی که کار با اینترنت رو خیلی ساده میکرد». وب باعث شد تا اینترنت یک رشد انفجاری در تعداد کاربران رو تجربه و به فراگیری اینترنت در بحث عمومی و تجاری کمک بسیار جدیای کرد.

تیم برنرز یک فیزیکدان و مهندس نرمافزار اهل بریتانیا که در CERN (مرکز تحقیقاتی فیزیک ذرات در سوئیس بزرگترین آزمایشگاه فیزیک ذرهای جهان است) کار میکرد. CERN پر بود از دانشمندانی که روی سیستمهای مختلفی کار میکردن و این افراد برای دسترسی به اطلاعات همدیگه باید در محیط ترمینال با پیچیدگی فراوان کار میکردن و برنرز از این وضعیت راضی نبود و اون رو وقتگیر و پیچیده میدونست برای همین روی ایدهای کار کرد که بعدا به نام وب (Web) یا همان WWW (World Wide Web) منتشر شد اما داستان خلق و انتشار وب هم مثل بقیه چیزها پر از پیچیدگی و مخالفت بود!

برنرز در سال 1989 پیشنهاد خودش با عنوان "Information Management: A Proposal" به مدیرش در CERN داد و مدیرش هم در جواب گفت «جالب، مبهم، اما هیجانانگیز.» و پس از مطرح شدن بین سایر دانشمندان CERN بسیاری از مدیران و مهندسان ارشد CERN این ایده رو «بیش از حد سادهسازیشده» یا «غیرعملی» میدونستن. گروهی که به سیستمهای متنی عادت کرده بودن چنین چیزی رو غیرلازم میدونستن و گروهی هم میگفتن این حد از سادگی جواب نمیده و ارزش وقت صرف کردن نداره!
تیم برنرز لی: «مردم فکر میکردن وب خیلی سادهست که جواب بده!»
دو چیز باعث پیروزی وب شد. اولی این که برنرز لی همیشه تأکید داشت وب باید باز، رایگان و بدون مالکیت تجاری بمونه و این تصمیمی کلیدی بود چون سرویس Gopher از دانشگاه مینهسوتا که به نوعی رقیب وب در اون زمان بود اعلام کرد در آینده ممکنه مشمول هزینه بشه و رایگان بودن وب یک مزیت کلیدی به حساب میامد و همین باعث شد که توسعهدهندگان بهسمت گزینهای رایگان یعنی وب برن . دومین عامل سادگی در استفاده بود. در ایده وب اون یک رابط کاربری گرافیکی که میشه روی لینکها کلیک کرد و به راحتی بین مستندات جابهجا شد جایگزین یادگیری و تایپ کلی دستور برای دسترسی به اطلاعات شده بود و این کار رو برای افرادی با دانش فنی کمتر رو هم ممکن میکرد.
بیاین با هم بریم سراغ جزئیات اولین نسخه وب که تیم برنرز لی به نوعی با اختراع اونها وب رو اختراع کرد. اولین جزء پروتکل HTTP (Hypertext Transfer Protocol) بود که از اون برای انتقال اطلاعات وب در بستر اینترنت استفاده میشد. جزء دوم HTML (HyperText Markup Language) یک زبان نشانهگذاری برای ساخت صفحات وب بود. جزء سوم URL (Uniform Resource Locator) بود که یک روش آدرسدهی استاندارد برای صفحات و منابع بود. جزء چهارم مرورگر WorldWideWeb بود که میتونست این صفحات رو به شکل گرافیکی نمایش بده. جزء پنج و اخر هم یک وب سرور بود به نام httpd که مثل مرورگرش فقط روی کامپیوتر NeXT (ساخت شرکت NeXT متعلق به استیو جابز) با سیستم عامل NeXTSTEP اجرا میشد.

در واقع وقتی در مورد اختراع وب توسط تیم برنرز حرف میزنیم منظور اختراع همه اینها هست! برنرز ایده سرویس اینترنتی وب رو اولین بار در سال ۱۹۸۹ مطرح کرد و حدود ۲ سال طول کشید (سال ۱۹۹۱) تا اولین نسخه از وب رو توسعه بده. جالبه بدونید که همون کامپیوتر NeXT اصلی Tim Berners-Lee هنوز در CERN با همون برچسب معروف روش (!!This machine is a server. DO NOT POWER IT DOWN) نگهداری میشه.

بیاید با هم عمیقتر اولین نسخههای اجزاء وب رو بررسی کنیم.
پروتکلی که بشه با اون کار انتقال دادهها رو انجام داد یکی از اساسیترین نیازهای ایده وب بود برای همین برنرز HTTP رو خلق کرد.
این پروتکل با پروتکل HTTP/2 و HTTP/3 که الان ازش استفاده میکنیم خیلی متفاوت بود از این جهت که خیلی خیلی ساده بود! هیچ هدری (Header) نداشت (نه در درخواست، نه در پاسخ) هیچ کد وضعیتی (مثل 404 یا 200) نداشت و فقط از متد GET پشتیبانی میکرد و فقط فایلهای متنی HTML رو منتقل میکرد (نه تصویر، نه صوت، نه CSS) بدون هیچ رمزنگاریای!
الهام گرفتن: اون از FTP ایدهٔ "درخواست فایل از سرور" رو برداشت و خیلی سادهتر کرد چون نمیخواست کاربران نیاز به ورود (login) یا دستورات پیچیده داشته باشن. تقریبا همزمان با این تلاش برنرز هم Gopher پروتکلی که بهصورت منویی محتوا رو نمایش میداد رو ارائه کرده بود که نه لینک داشت و نه ساختار فرامتنی (ساختاری که علاوه بر متن اصلی محتوا اطلاعات جانبی و جزئیات نمایش مثل برجسته شدن متن هم داشته باشه)، فقط یکسری منو بود که میشد بین اونها چرخید و مستندات متنی رو مشاهده کرد اما همین ساختار هم برای برنرز در خلق پروتکل HTTP الهام بخش بود. علاوه بر این برنرز دوست داشت پروتکلش قابلاستفاده با telnet هم باشه. یعنی بشه مستقیماً به پورت 80 وصل شد و دستی دستور GET / رو تایپ کرد.

نهایتا برنرز در سال ۱۹۹۰ اولین نسخه HTTP یعنی HTTP/0.9 رو برای ایده وب خودش خلق کرد. حدود ۶ سال بعد (۱۹۹۶) هم نسخهٔ HTTP/1.0 بهصورت رسمی منتشر شد، اما نه مستقیماً توسط برنرز. در واقع، تا اون زمان جامعهٔ توسعه وب و اینترنت گسترش زیادی پیدا کرده بود، و توسعهٔ HTTP از حالت فردی خارج شده بود و اون بیشتر نقش مشاور و راهنما رو داشت و در ادامه نسخههای HTTP/1.1 در سال ۱۹۹۷ و HTTP/2 در سال ۲۰۱۵ و نهایتا اخرین نسخه یعنی HTTP/3 در سال 2019 منتشر شد.
تیم برنرز از مسیر فایلها در سیستمعاملها (home/user/docs/file.txt/) و همچنین پروتکلهای دیگری که در اون زمان رایج بود مثل (ftp://ftp.site.com/file.txt) FTP و Telnet (telnet://login.site.com) الهام گرفت و چیزی شبیه به اونها رو تحت عنوان URL برای ایده وب خودش پیاده سازی کرد تا با اون بتونه صفحات وب که یکسری فایل HTML بودن رو آدرس دهی کنه.
شاید فکر کنید که این کجاش اختراع هست! در حقیقت چیزی که برنرز با URL اختراع کرد تعریف و مفهومی چند پروتکلی، چند استفادهای و همچنین تعریف هر بخشهای این ساختار آدرسدهی بود. اون چنین ساختاری رو معرفی کرد:
scheme://host:port/path?query#fragment
در واقع اون میخواست تا همهٔ منابع، چه یک صفحه وب باشه چه تصویر یا حتی فایل متنی، ساختار آدرسدهی مشابهی داشته باشن تا مرورگر بدونه با دیدن اول آدرس، باید از چه پروتکلی استفاده کنه و با تفسیر هر بخش آدرس بدونه که چطور باید رفتار کنه. در واقع اون مخترع مفهوم آدرس دهی منطعف بود.

البته در سالهای خلق وب (۱۹۸۹ تا ۱۹۹۰) اون خیلی پیگیر ثبت این موضوع نبود و مدتها بعد از این که در IETF (Internet Engineering Task Force) اولین تعریف رسمی URL در کنار مستندات اولیه HTTP و HTML اومد برنرز و تیمش در قالب RFC 1738 در دسامبر 1994 اون رو رسماً ثبت کردند.
او اولین نرمافزار وبسرور دنیا بهنام httpd (مخفف "HTTP Daemon") رو از صفر خودش نوشت که وظیفه اون گوش دادن روی پورت (معمولاً پورت 80) دریافت درخواست GET (فقط این نوع در نسخه HTTP/0.9 پشتیبانی میشد) پیدا کردن فایل HTML خواستهشده در سیستم ارسال محتوای فایل به مرورگر کاربر بود. سرور httpd روی دایرکتوریهایی از فایلهای متنی (HTML) کار میکرد و اونا رو براساس URL به کاربران تحویل میداد.

تیم برنرز کد httpd و مرورگری که نوشته بود رو به صورت متنباز منتشر کرد و باعث شد افراد زیادی (از جمله Nicola Pellow) به اون کمک کنن تا این نرمافزارها که فقط روی کامپیوتر NeXT کار میکردن به پلتفرمهای دیگه هم منتقل بشن. بعدها پروژههایی مثل Apache HTTP Server (سال ۱۹۹۵) بر اساس همین مدل ساخته شدن.
مرورگر WorldWideWeb یک نرمافزار ساده بود که ظاهر گرافیکی بسیار سادهای داشت، منوی بالا برای «Open from full document reference» بود که در واقع محل درج URL بود که با اون به کمک وب سرور یک فایل HTML داخلی رو دریافت و نمایش میداد، یک نوار وضعیت در پایین صفحه بود و متن اصلی با لینکهای آبیرنگ هم در وسط نمایش داده می شد. علاوه بر اینها یکسری تنظیمات ظاهری هم داشت و از همه مهمتر این مرورگر اولین ویرایشگر WYSIWYG برای HTML هم محسوب میشد. این مرورگر قابلیت نمایش چند پنجرهای هم داشت که هر صفحه در یک پنجره جدا باز و به نمایش گذاشته میشد.

چون اسم WorldWideWeb با کل سیستم وب اشتباه گرفته میشد، تیم برنرز بعدها نام نرمافزار رو به Nexus تغییر داد تا تمایز داشته باشه. در اواخر 1991، کدش به صورت رایگان منتشر شد، ولی چون فقط روی NeXT کار میکرد، توسعهدهندگان دیگر مرورگرهای سادهتری مثل Line Mode Browser و ViolaWWW رو ساختند که در سیستمعاملهای مختلف اجرا میشدن.
مرورگر Mosaic یکی از مهمترین نقاط عطف در تاریخ وب بود، مرورگری که عملاً باعث انفجار عمومی اینترنت در اوایل دهه ۹۰ میلادی شد. برخلاف مرورگرهای اولیه که محدود و تخصصی بودن، Mosaic تجربهای گرافیکی به مراتب ساده و در دسترستری برای همه فراهم کرد. این مرورگر در سال ۱۹۹۳ توسط Marc Andreessen و Eric Bina خلق شد و در NCSA (National Center for Supercomputing Applications) در دانشگاه ایلینوی توسعه داده شد.

اینها یکسری از علتهایی بود که باعث شد چنین محبوبیت و فراگیریای رخ بده.
مرورگر NCSA Mosaic رایگان بود، اما به دلیل محدودیتهای دولتی، نمیتونست تجاری بشه. این باعث شد Marc Andreessen از NCSA جدا بشه و شرکت Netscape Communications رو تأسیس کنه. Netscape Navigator همون تجربه Mosaic رو تجاریسازی کرد و بین 1994 تا 1998 بیشترین سهم بازار رو داشت.
مایکروسافت اینترنت اکسپلورر
مایکروسافت در ابتدای سال ۱۹۹۵ ورژن یک مرورگر Internet Explorer خودش رو بر پایه مرورگر Spyglass Mosaic توسعه داد که نسخهای بسیار ساده بود و فقط روی Windows 95 اجرا میشد و در قالب Microsoft Plus و بخشی از بسته مکمل Windows 95 ارائه شد. این مرورگر فقط قابلیتهای پایه مرور وب (HTML 2.0) را داشت و هیچ پشتیبانی از JavaScript، CSS نمیکرد یا حتی بوک مارک های درست حسابی هم نداشت.

در پایان همان سال (۱۹۹۵) مایکروسافت نسخه ۲ این مرورگر رو توسعه داد که در این نسخه پشتیبانی اولیه از JavaScript و SSL اضافه شد. سال بعد با توسعه نسخه ۳ و افزودن پشتیبانی از CSS رسما وارد رقابت جدی با Netscape شد و جنگ مرورگرها آغاز شد.
جنگ مرورگرها
در سال ۱۹۹۶ این جنگ شروع شد و باعث شد Netscape در ۱۹۹۸ شکست بخوره ولی ده سال طول کشید تا این شکست رو قبول کنه و متوقف بشه.

نت اسکیپ از یک طرف بخاطر انحصاری که مایکروسافت با نصب پیش فرض IE در ویندوز ایجاد کرده بود و از طرف دیگه بخاطر رقابت دیوانهورا باعث شده بود تا Netscape 4 پر از باگ بشه تا حدی که تصمیم به بازنویسی کامل موتور مرورگر گرفته شد اما چون توسعه این نسخه خیلی طول کشید Netscape بازار رو از دست داد. البته عامل سومی هم بود! در سال ۱۹۹۸ جسم رنجور Netscape به AOL که شرکت تجاری بود فروخته شد و این شرکت روی پولسازی تمرکز کرده بود و نه نوآوری که باعث شد خیلی از توسعهدهندهها و مهندسا ناامید شدن و پروژه رو رها کردن.
در همان سال ۱۹۹۸ شرکت AOL فهمید پروژه Netscape عملاً دیگه قابل نجات نیست برای همین کد مرورگرش رو Open Source کرد و مرورگر Mozilla بر اساس اون متولد شد.
موزیلا سوئیت
موزیلا یک مجموعهی نرمافزاری بزرگ شامل مرورگر، ایمیل، و ابزارهای دیگه بود که حجم زیاد، UI پیچیده، و سرعت پایین باعث شد محبوب نشه.

از سال ۱۹۹۸ تا ۲۰۰۰ آرام آرام مرورگر Internet Explorer یکه تاز بازار شد و ۹۵٪ بازار رو در اختیار گرفت. این انحصار و نبود رقیب جدی انگیزه توسعه و رشد رو از مایکروسافت گرفت و از سال ۲۰۰۰ تا ۲۰۰۴ هیچ نسخه جدیدی منتشر نشد و همین باعث نوعی بیانگیزگی و کندی فرایند توسعه HTML در W3C شده بود.
موزیلا فایرفاکس
در سال ۲۰۰۲ در میانه این سکوت و بیانگیزگی، تعدادی از توسعهدهندگان Mozilla تصمیم گرفتن از صفر یک مرورگر سبک، سریع بسازن و تنها و تنها یک مرورگر بسازن!

این فرایند دو سال طول کشید. در ابتدا اسمش رو Phoenix گذاشتن ولی به مشکل قانونی خوردن و به Firebird تغییر دادن ولی در نهایت با نام Firefox نسخه یک رو در سال ۲۰۰۴ عرضه کردن. به دلیل مزایایی مثل سرعت و امنیت بالا، تجربه کاربری بهتر با تبگردی و پشتیبانی کامل از استانداردها به سرعت محبوب شد.
اپل سافاری
موازی اونها در سال ۲۰۰۳ اپل با موتور KHTML (Konqueror) برای macOS مرورگر سافاری رو معرفی کرد که بعداً این موتور به WebKit تبدیل شد و که موتور سافاری فعلی هست.

هدف اپل نجات وب نبود بلکه اهداف مالی داشت و دنبال این بود تا از اون انحصار خاص خودش رو مثل مایکروسافت خلق کنه برای همین نتونست مثل فایرفاکس یک رشد انفجاری و محبوبیت فراگیر رو تجربه کنه. با این که مایکروسافت در نهایت در مقابل گوگل کروم و فایرفاکس شکست خورد IE رو متوقف کرد ولی اپل همچنان مشابه همون رفتار رو داره دنبال میکنه و سافاری همچنان یکی از کابوسهای دنیای توسعه وب هست و در اون باگهای عجیب و غریب رخ میده، بسیار کند و گاه ناقص با استانداردها هماهنگ میشه و با ایجاد ویژگیهای اختصاصی در دستگاههای اپل سعی میکنه این انحصار رو حفظ کنه.
گوگل کروم
گوگل مرورگر خودش رو در سال ۲۰۰۸ با موتور WebKit اپل منتشر کرد. این مرورگر خیلی سریع، با رابط کاربری ساده، DevTools عالی، و امنیت بالا و البته قدرت تبلیغاتیای که گوگل داشت تونست سهم بازار خیلی خوبی رو بگیره.

بعدها WebKit رو Fork کرد و موتور جدیدی به نام Blink ساخت که امروزه هم استفاده میشه. یکی از مزیتهای رقابتی جدی کروم موتور جاوااسکریپت بسیار سریع V8 بود. سافاری و فایرفاکس در مورد تبدیل HTML و CSS به رابط گرافیکی (DOM، Layout، Paint...) خوب بودن ولی در موتور پردازش جاوااسکریپت بسیار کند بودن در نتیجه گوگل تصمیم گرفت از صفر یک موتور با تکنیکهایی مثل JIT Compilation (کامپایل در زمان اجرا) بنویسه که باعث اجرا سریعتر وب اپلیکیشنها شد که بعدا با این موتور NodeJS خلق شد و انقلابی در وب و مخصوصا توسعه Front-End ایجاد کرد.
برنرز HTML رو با ساده سازی SGML خلق کرد، SGML هم بر اساس GML خلق شده بود!
زبان GML (Generalized Markup Language) در سال ۱۹۶۹ در IBM خلق شد. یک سیستم نشانهگذاری برای اسناد بزرگ (مثل اسناد حقوقی، علمی) بود که هم قابل خواندن برای انسان باشه، هم برای ماشین و از برچسبهایی استفاده میکرد که معنای منطقی داشتند، نه صرفاً ظاهر بصری (مثلاً :section یا :para).

زبان SGML (Standard Generalized Markup Language) در سال ۱۹۸۶ توسط همون فردی که GML رو در IBM خلق کرده بود یعنی Charles Goldfarb خلق شد و توسط سازمان بینالمللی استاندارد طی ISO 8879 تایید شد.

هدف این زبان نشانه گذاری تعریف یک چارچوب عمومی برای ساخت زبانهای نشانهگذاری خاصمنظوره بود. SGML بسیار انعطافپذیر بود ولی پیچیده که قابلیت تعریف DTD (Document Type Definition) جدید طبق خواستههای اون زبان رو هم داشت. در واقع SGML یک قالب و چهارچوب بود برای ساخت زبانهای جدید بود و تقریبا خودش مستقیم برای تولید محتوا استفاده نمیشد.

برنرز هم برای ایده وب خودش از SGML کمک گرفت ولی از مدتی کوتاهی اون رو مناسب وب ندونست چون معقتد بود وب یک ایده برای سادهسازی هست و SGML خیلی پیچیده و سنگین هست پس دست به کار شد و پس از ساده سازی زیاد و البته افزودن ویژگیهای جدیدی لینک (تگ <a>) اولین زبان وب رو خلق کرد و اسمش رو HTML(Hypertext Markup Language) گذاشت.
نسخه HTML بدون DTD بود و اولین نسخه HTML که رسماً دارای DTD شد، HTML 2.0 بود که سال 1995 منتشر شد که توسط HTML Working Group یکی از زیر کارگروههای W3C توسعه داده شده بود. برنرز بخاطر این سادهسازیهای زیادی که انجام میداد اغلب مورد نقد متخصصان این حوزه قرار داشت و اونها معتقد بودن این سادهسازیها اخر به شکست اون منجر خواهد شد ولی از قدیم گفتن "جوجه رو اخر پاییز میشمارن" و این سادهسازیهای زیاد در نهایت یکی از دلایلی شد که باعث شد تا ایده وب برنرز موفق بشه.
پس از موفقیت وب اولیه (1991–1993)، شرکتهای مختلف شروع کردن به توسعه نسخههای HTML اختصاصی و مرورگرهای خودشون و این روند باعث یک ناهماهنگی بزرگ شد، تا جایی که اغلب صفحات وب در مرورگرهای مختلف متفاوت نمایش داده میشد و پر از اشکالات جدی بود و توسعهدهندهها رو سردرگم کرده بود. این برای آینده وب موضوع خطرناکی شده بود برای همین برنرز و جمعی از همکارانش W3C (World Wide Web Consortium) رو در سال ۱۹۹۴ تأسیس کردن.

کنسرسیوم W3C یک اتحادیه جهانی از سازمانها، دانشگاهها، و شرکتهای فناوری هست که با هم همکاری میکردن تا استانداردهای وب (مانند HTML، CSS، XML، ARIA و ...) رو توسعه بدن و این اتحادیه همچنان مرجع توسعه و انتشار رسمی استانداردهای بخشهای مهمی از وب هست و در سراسر جهان دفاتر فعال داره.
برنرز به کمک W3C در بین سالهای ۱۹۹۵ تا ۲۰۰۰ تلاش کرد تا ویژگی و ساختارهای صفحات وب رو یکسان و توسعه دهندهها رو متحد کنه ولی شرکتها اغلب اهمیت نمیدادن، گزینشی و سلیقهای استانداردها رو اعمال میکردن و هر شرکت سعی میکرد با توسعه قابلیتهای اختصاصی خودش با دیگر شرکتها رقابت کنه تا سهم بازار بیشتری رو به دست بیاره و به نوعی W3C خیلی نتونست این آشوب رو کنترل کنه و شلعه جنگ مرورگرها هر روز شعلهورتر میشد و ایده "یک وب برای همه" و "یک بار کد بنویس و همجا استفاده کن" تقریبا بیمعنی شده بود چون کاربران تجربه یکسانی از وب نداشتن!
مثلا box model در CSS بین IE و دیگران متفاوت بود، تگهای اختصاصی مثل <blink> در Netscape یا document.all در IE تعریف شده بود و جاوااسکریپت در هر مرورگر با روشهای متفاوتی اجرا میشد مثلا IE از innerText استفاده میکرد و بقیه textContext و این باعث میشد توسعهدهندگان مجبور باشن کدها رو برای هر مرورگر جداگانه بنویسن یا هکهای اختصاصی بزنن که باعث شد اصطلاحی شکل بگیره به نام "quirks mode" یا حالت ناسازگار که رفتار عجیب مرورگرهای قدیمی مثل Internet Explorer 5/6 رو تقلید میکنه.
در بین سالهای ۲۰۰۰ تا ۲۰۰۴ هم که رسما IE یکتاز انحصاری بازار مرورگرها با سهم بازار ۹۵٪ شده بود و باعث بیانگیزگی و کند توسعه HTML د W3C شده بود البته به نظرم بیشتر افسرده و خشمگین بود تا منعل!
در سال ۲۰۰۰ W3C در پاسخ به آشفتگی HTML، تصمیم گرفت بره سراغ نظم با ساختاری سختگیرانهتر و این شد که نسخه XHTML 1.0 رو توسعه داد.

تا قبل از این 3 بار نسخههایی رسمی برای HTML توسعه و معرفی کرده بود. نسخه HTML 2.0 در سال ۱۹۹۵، نسخه HTML 3.2 در سال ۱۹۹۷ و نسخه HTML 4.01 در سال ۱۹۹۹ اما در سال ۲۰۰۰ تصمیم گرفت تا دیگه HTML رو توسعه نده و به جای اون XHTML رو که قوانین سخت XML رو همراه داشت رو توسعه بده. این نسخه برخلاف HTML بسیار ساختارمند و قانونمند بود به طوری که اگر یک تگ رو اشتباه مینوشتید کل صفحه اجرا نمیشد و این کار رو برای افراد عادی بسیار سخت میکرد و باعث شد خیلی از توسعهدهندهها و شرکتها از این روند ناامید بشن!
همزمان با انتشار فایرفاکس در سال ۲۰۰۴ گروهی از مهندس از مرورگرسازهای اصلی (Apple، Mozilla، Opera) که وضعیت موجود ناراضی بودن با این توضیح که «W3C توسعه HTML را رها کرده و XHTML بیش از حد سختگیرانه است و ما HTML را برمیگردانیم و بهبود میدهیم» یک گروه کاری تاسیس کردن.
این کار گروه با ۳ هدف اصلی شروع به کار کرد:
خودمون HTML رو زنده میکنیم، نه با قوانین خشک، بلکه با تکیه بر نیاز واقعی توسعهدهندهها و کاربران. ما نیاز به یک استاندارد داریم که کار کنه، نه فقط درست باشه روی کاغذ و با هر اشتباهی استفاده کاربر رو محدود کنه.
این گروه سال بعد (۲۰۰۵) اولین نسخه خودشون رو که نسخه ارتقا یافته همون HTML قدیمی بود با نام HTML5 منتشر کردن و عملا از این سال به بعد دو استاندارد داشتیم که یکی توسط W3C و دیگری توسط WHATWG توسعه داده میشد.
از بین این مهندسان میشه به ایان هیکسون Ian Hickson (که بهش Hixie هم میگن) اشاره کرد. WHATWG برخلاف W3C، نسخههای شمارهدار (HTML5, 5.1, 5.2) منتشر نمیکنه و تنها یک نسخه "زنده" داره که دائم بهروز میشه. Hixie نقش کلیدی در تدوین HTML5 داشت و سالها "ویرایشگر زنده" HTML در WHATWG بود.

به طور کلی این دو چنین تفاوتهایی با هم دارن:
از 2008 گروه WHATWG تصمیم گرفت دیگه ورژن جدید تولید نکنه و HTML یا بهتره بگیم اون چیزی که به عنوان HTML5 معرفی کرده بودن رو مدام و به صورت زنده اپدیت کنن مثل یک درخت که هر سال رشد میکنه و بزرگتر میشه و شاخههای اضافی هم برای باروری بهتر هرس میشن.
سه عامل باعث شد تا نسخه WHATWG مورد پسندتر از نسخه W3C بشه. اول نبود قوانین سختگیرانهای مثل XHTML، دوم همین ایده و مفهوم نسخه زنده که باعث میشد توسعه دهندهها با اون راحتتر باشن و سوم نفوذی که مرورگرهای مورد توسعه مهندسان WHATWG داشتن.
این اتفاق باعث شد تا در سال ۲۰۱۴ W3C بیخیال XHTML بشه و محتوای مستندات WHATWG رو بگیره و یک نسخه مشابه HTML رو با اسم HTML5 البته طبق فرآیند رسمی استانداردسازی خودش (WD → CR → REC) پیاده سازی کنه.
این اتفاق هم به جهت مجبوبیت و کارایی بهتر نسخه WHATWG بود و هم تلاشی بود از سمت W3C تا WHATWG رو به نوعی راضی به انحلال کنه تا دوباره مرجعیت توسعه HTML به خودش برگرده و نقش کمرنگ شده خودش رو بتونه احیا کنه اما WHATWG معتقد بود صرف انتشار نسخه بر اساس HTML5 اونها همه مشکل نیست و سایر جزئیات مثل ساختار بوروکراتیک W3C و فرایند رسمی و کند توسعه و انتشار خودش یک چالش جدی هست و W3C حاضر نبود تا چارچوب خشک سازمانی خودش رو هم مانند WHATWG منعطف کنه.
این موضوع باعث شد بعد مدتی دوباره ۲ نسخه و خط موازی برای HTML پیش بیاد. W3C بعداً نسخههای 5.1 و 5.2 رو هم در سالهای 2016 و 2017 منتشر کرد و مشکل به لحاظ مفهومی پیچیدهتر هم شد. دو نسخه متفاوت (البته با پایه یکسان) که هر دو اسمشون HTML5 بود!
این درگیری ادامه داشت و مرورگرهای مشهور و پر استفاده که اغلب تحت توسعه مهندسان WHATWG بودن نسخه WHATWG رو خیلی عملیتر و کاربردیتر پیش میبردن این رسما باعث بیتوجهی جامعه توسعه دهندههای وب به نسخه W3C شده بود تا این که در سال ۲۰۱۹ در نهایت W3C تسلیم شد و طی توافقنامهای از توسعه HTML دست کشید.
به طور خلاصه طی این توافق گفته شد این پس، فقط نسخه HTML Living Standard WHATWG معتبر است و W3C دیگر نسخهٔ مستقلی از HTML منتشر نخواهد کرد و در این موضوع دخالت مستقیم و تصمیمگیریای نخواهد داشت. W3C فقط نسخهٔ snapshot (یک رونوشت از آنچه WHATWG توسعه داده) رو برای اعلام به عنوان رفرنس قانونی و رسمی منتشر خواهد کرد.
اخرین تغییرات و استاندارد زنده HTML را میتوان از اینجا (https://html.spec.whatwg.org) دنبال کنید که در اینجا (https://github.com/whatwg/html) نگهداری و توسعه داده میشه.
البته وب از سال 1993 که تیم NCSA (National Center for Supercomputing Applications) تکنولوژی CGI (Common Gateway Interface) رو خلق کرد از حالت استاتیک که فقط یکسری فایل استاتیک HTML لود میشد خارج شد و این اختلافات که تا اینجا توضیح دادیم بیشتر در لایه سمت کاربر یعنی مرورگر و Front-End بود و در Back-End به مراتب شرایط بهتر بود.
تکنولوژی CGI به سرورها امکان میداد درخواستها را به برنامههای اجرایی (مثل اسکریپتهای Perl یا C) بدهند. این اسکریپتها میتوانستند ورودی از کاربر بگیرند، پردازش کنند، و HTML تولید کنند و اولین وباپلیکیشنها با این روش ساخته شدند و آن چیزی که به اون میگیم Back-End وب از این نقطه آغاز شد.
اولین قدم برای آرام گرفتن آشوب لایه FrontEnd که از سال ۱۹۹۱ آغاز شده بود در سال ۲۰۱۴ با کنار گذاشته شدن XHTML و انتشار HTML5 براساس مستندات WHATWG توسط W3C برداشته شد. علاوه بر این در حوالی سال ۲۰۱۴ و ۲۰۱۵ شرکتها و توسعهدهندههای مرورگر بسیار بیشتر از قبل به یکسان شدن استانداردها و کنار گذاشتن روحیه رقبات با تولید ویژگیهای انحصاری تمایل پیدا کرده بودن و این زمینه فکری باعث شد اختلافات نمایشی در مرورگرها به مرور کاهش پیدا کنه تا این که در سال ۲۰۱۹ اون توافق تاریخی WHATWG و W3C رخ داد و پیش رفتن بر اساس استانداردها بالاخره در سال ۲۰۲۰ بعد از حدود ۲۰ سال مورد پذیرش اکثریت بازار قرار گرفت.
البته هنوز هم مرورگرها در توسعه استانداردهای جدید اختلافات جزئی دارن مثلا الان سر فرمتهای (WebM, H.264) صوت و ویدیو هنوز اختلاف دارن یا Safari هنوز Web Components رو به طور کامل ساپورت نمیکنه ولی میشه گفت در موارد بنیادی، پرکاربرد و اصلی همه براساس استانداردهای W3C رفتار میکنه و بالاخره ایده "یک وب برای همه" و "یک بار کد بنویس و همجا استفاده کن" تونست محقق بشه.
۶.۱) پنجاه سال، از ایده تا اوج
در این حدود ۵۰ سال یعنی از سال ۱۹۶۹ که لیکلایدر طرح اولیه اینترنت رو مطرح کرد تا ۲۰۱۹ مرجعیت توسعه و انتشار استاندارد به توافق رسیدن و وب به آرامش و همگیری امروزی خودش رسید هزاران نفر تلاش کردن و همیشه در سر راه هر تغییری گروهی مخالف ایستادن و سنگاندازی کردن ولی در آخر آنچه باید میشد، شد!
در ابتدا میخواستم خودم بیام و شکست و موفقیتها، تلاش و ایستادگیها، تفکرات باز و بسته و .... رو بررسی و مرور کنم ولی به نظرم این مطلب هر بخشش باید جدا خونده و روش فکر بشه و هر کس بهتره خودش به تجربههایی که پشت این اتفاقات هست فکر کنه.

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