هر وب سایت به طور کلی از تعدادی صفحه وب تشکیل شده که بر روی یک یا چند سرور میزبانی می شود که عموما از طریق اینترنت توسط یک یا چند آدرس وب قابل دسترسی است!
حال به توضیح بعضی از موارد بالا می پردازیم:
صفحه وب (Web Page) :
صفحه وب سندی است که برای مثال به زبان xhtml نوشته شده است که توسط پروتکل http قابل دسترسی است!
میزبان وب (Web Host):
برای اینکه وب سایتی که طراحی می کنید از طریق اینترنت برای همه قابل دسترسی باشد باید وب سایت خود را در یک کامپیوتر قرار دهید که به اینترنت متصل است!
خوب من ADSL 512K دارم! اگه یه وب سایت بسازم تو کامپیوترم همه می تونن با اینترنت ببیننش!؟؟؟
جواب نه هستش! موضوع اصلی اینه که وقتی کامپیوتر ما به اینترنت متصل میشه از طریق کامپیوتر یک شرکت سرویس دهنده اینترنت(ISP) این کار صورت میگیره!
خوب در این حالت کامپیوتر ما یک IP داره که ISP بهش داده اما مشکل اینجاست که این IP متعلق به شبکه داخلی ISP است! (شبکه ای که از کامپیوتر ما و بقیه کامپیوترهایی که از طریق این ISP به اینترنت متصل میشن تشکیل شده).
نکته جالب توجه اینه که IPی که شما بوسیله اون توی اینترنت دیده میشید IP دیگری است که متعلق به کامپیوتری است که کل شبکه ی اون ISP از طریقش به اینترنت متصل میشن!
فکر کنم مشکل اصلی تا اینجا مشخص شده باشه! اگه نه بدونید مشکل اینجاست که کامپیوتر شما از طریق اینترنت تنها درصورتی قابل دسترسی هست که یک IP VALID اصطلاحا داشته باشه IPِی که شما باید اون رو خریداری کنید!
نکته دیگه اینه که برای خرید IP باید شما مجوز داشته باشید و اینکه تجهیزات خاص دیگه ای هم نیاز هستند که جای بحث آنها در اینجا نیست!
پس راه حل چیه؟
اینجاست که میزبان های وب به کمک شما میان! میزبان های وب عموما شرکت هایی هستند که کارهایی که در بالا گفته شد انجام داده اند و کامپیوترهای پر قدرتی را هم خریداری کرده اند! ضمنا امنیت سرورها رو تضمین می کنند و نگهداری از سرورها رو نیز انجام می دهند. تنها کاری که شما باید انجام بدهید خرید مقداری از فضای دیسک و پهنای باندی است که آنها در اختیار دارند(یعنی شما وب سایت خودتون را روی اون فضا قرار می دهید)
آدرس وب (Web Address):
هر وب سایت برای اینکه قابل دسترسی باشه باید که حداقل یک نام داشته باشه تا افراد بتونن از طریق اون آدرس یا نام دامنه ، وب سایت رو مشاهده کنند به این آدرس URL یا URI نیز میگن که مخفف Uniform Resource Identifier هست به معنای شناسه واحد منبع! چون این آدرس در همه جای دنیا به یک شکل خاصی باید نوشته بشه بهش میگن Uniform و از اونجا که داره به یک وب سایت اشاره میکنه(از طریق این نام به وب سایت دسترسی پیدا می کنیم) بهش میگن Resource Identifier!
توجه کنید که باید این نام رو خریداری کنید! معمولا این کار رو توسط همون شرکتی ازش فضا می خرید براتون انجام میده!
خوب تا اینجا فهمیدیم که وب سایت چیه و برای اینکه یک وب سایت داشته باشیم باید چکارهایی انجام بدیم. در مقالات بعدی سایر مفاهیم رو بررسی می کنیم.
با فراگير شدن استفاده از اينترنت و رونق اين فناوري، روز به روز شاهد پيشرفتهاي جديد در اين زمينه هستيم. پيرو اين مساله، فناوريها، پروتكلها و زبانهاي بسياري طراحي شدهاند تا بتوانند با پشتيباني از امكانات جديد، به نيازهاي كاربران به بهترين نحو پاسخ دهند.
به دليل آن كه اينترنت در دنياي رايانه تعريف شده است و رايانه نيز چيزي جز الفباي ديجيتال را درك نميكند براي آن زبانهاي گوناگون و متنوعي طراحي شده است كه هر كدام با داشتن يك سري ويژگيها، امكاناتي در اختيار برنامهنويسان و كاربران قرار ميدهد. اين زبانها علاوه بر اين كه هر يك خصوصيات خود را دارند، در برخي ويژگيها مشابه هستند. به عنوان مثال اكثريت قريب به اتفاق زبانهاي مبتني بر وب زبانهايي هستند كه از مفسر جهت تبديل كدهاي زبان مبدا به زبان قابل فهم ماشين بهره ميبرند و براي آنها نميتوان از كامپايلر استفاده كرد. دليل اين امر آن است كه كامپايلر كدهاي زبان را به زبان ماشين و فايل اجرايي تبديل ميكند و چون در سرتاسر دنيا، رايانههاي مختلف با پردازندههاي متنوع و همچنين سيستم عاملهاي گوناگون داريم، وجود يك فايل اجرايي مخصوص يك ماشين و يك سيستم عامل عملا به هيچ دردي نخواهد خورد. ضمن اين كه يكي از چيزهايي كه در دنياي اينترنت مطرح است، سرعت است. بنابراين اگر قرار بود با استفاده از كامپايلر برنامههاي تحت وب پيادهسازي شوند، آنگاه هرگز نميتوانستيم سايتهاي بزرگ با حجم انبوه اطلاعات داشته باشيم زيرا دريافت فايل اجرايي مربوط به آنها به مدت زيادي زمان نياز داشت. دريافت جزء به جزء برنامه نيز امكانپذير نبود. زيرا ميدانيم كه كامپايلر كل برنامه را به يكباره خوانده و در نهايت فايل اجرايي را توليد ميكند. اجراي تكه به تكه برنامه خصوصيت مفسرهاست و در واقع يك دليل به كارگيري آنها نيز همين خصوصيت است.
با توجه به اين كه كاربران اينترنت، از رايانههاي مختلف و سيستم عاملهاي گوناگون استفاده ميكنند بهترين راه آن است كه متن اصلي برنامه نوشته شده به رايانه كاربر منتقل شود و هر كاربر با توجه به امكانات و شرايط خود، آن برنامه را تفسير و اجرا كند. مفسر مربوط به زبانهاي تحت وب در واقع همين مرورگرها هستند. يك سايت يا صفحه وب با يك زبان نوشته ميشود. سپس هر كاربر با توجه به پردازنده و سيستم عامل مورد استفاده خود مرورگري را در رايانه خود نصب و اجرا ميكند. سپس با استفاده از آن مرورگر به آن سايت مراجعه كرده و از محتواي آن استفاده ميكند. به عبارتي براي برنامهنويس وب تفاوتي ندارد كه شخص با چه سيستم عامل و مرورگري قرار است از صفحه وي بازديد كند. او وظيفه دارد برنامه را طوري طراحي كند كه هر فرد از هر كجا با هر شرايط سيستمي بتواند از برنامه او بهرهمند شود.
استفاده از كد مياني
در برنامههاي تحت وب و بهكارگيري مفسرها و كامپايلرها، استثناهايي نيز وجود دارد. زبان جاوا يك زبان كامپايلري است، اما اين زبان يك محيطي تحت عنوان ماشين مجازي براي اجراي برنامههاي خود فراهم ميكند و برنامههاي خود را به زبان آن ماشين ترجمه و كامپايل ميكند. زبان آن ماشين نيز كاملا مستقل از ماشين حقيقي است.
بنابراين هر سيستم با نصب ماشين مجازي زبان جاوا كه مخصوص خود آن ماشين حقيقي طراحي شده است، ميتواند برنامههاي جاوا را اجرا كند. در نتيجه اين زبان ازجمله زبانهاي مستقل از ماشين محسوب ميشود.
وجود اين خاصيت باعث ميشود كه بتوان از اين زبان نيز در برنامههاي تحت وب استفاده كرده و از قدرت آن بهره برد. اما استفاده از اين زبان نيز به طور مستقل در وب امكانپذير نيست. تمام زبانهاي تحت وب امروزي بر پايه يك زبان ساده، تحت عنوانHTML بنا شدهاند. برنامههاي تحت وب يا همگي فرزندان اين زبان هستند يا اگر اين طور نباشد بايد با استفاده از اين زبان و فرزندان آن در برنامههاي تحت وب به كار گرفته شوند.
HTML
اين كلمه برگرفته از حروف اول عبارت HyperText Markup Language است. اين زبان پايه و اساس وب است و يك زبان نشانهگذاري براي طراحي صفحههاي وب است. بايد توجه داشت كهHTML يك زبان برنامهنويسي نيست. بلكه يك زبان نشانهگذاري است و براي ساختمند كردن اطلاعات و تفكيك اجزاي منطقي يك سند نظير عناوين، تصاوير، فهرستها، پاراگرافها، جداول و... به كار ميرود.
دستورالعملهاي اين زبانTag نام دارند كه محتواي يك صفحه وب به وسيله آنها نشانهگذاري شده و به اين ترتيب نحوه نمايش آن صفحه براي مرورگرهاي وب توصيف ميشود. مرورگرهاي وب نيز با خواندن هر كلمه از يك سندHTML بلافاصله آن را تفسير كرده و به شكل معادل آن نمايش ميدهند. زبان HTML صرفا براي نمايش است و به تنهايي هيچ عملي انجام نميدهد. براي آن كه بتوان صفحههاي وب پويا و تعاملي داشت حتما بايد با يك يا چند زبان برنامهنويسي ديگر كه مخصوص وب طراحي شدهاند، تركيب شود.
هر يك از برچسبهاي HTML، معنا و مفهوم خاصي دارند و تاثير مشخصي بر محتوا ميگذارند. مثلا برچسبهايي براي تغييرشكل ظاهري متن، نظير درشت و ضخيم كردن يك كلمه يا برقراري پيوند به صفحات ديگر تعريف شدهاند. يك سندHTML يك فايل متني است كه معمولا پسوند*.htm يا*.html دارد.
اين زبان بسيار ساده بوده و ميتوان طي چند ساعت، اصول آن را فرا گرفت. هر كس بايد پيش از شروع برنامهسازي وب حتما با اين زبان آشنايي داشته باشد و قادر به درك كدهاي آن باشد.
در افسانه ایلیاد اثر هومر، آژاکس (Ajax) نام پسر (Telamon) است. آوازه قدرت و شجاعت او چون یک جنگجوی بزرگ یونانی در همهجا پیچیده بود. او همیشه یک تبر بزرگ و یک سپر بزرگتر با خود حمل میکرد. این سلاحها به او در جنگ با جنگجویان تروا باری میرساندند. علاوه بر این نام جالب و جذابی هم داشت.
نام آژاکس از این رو تا این حد جالب است که در افسانه ایلیاد بیش از یکبار بهکار برده شده است. همچون آژاکس پسر تلمون، یک آژاکس دیگر که شهرت کمتری دارد نیز در بین جنگجویان تروا دیده میشود. نام آژاکس از آن زمان تاکنون بارها استفاده شده است.
آژاکس نام کشتی جنگی بریتانیا بود که در نبرد River Plate در جنگ جهانی دوم شرکت داشت. آژاکس نام فضاپیمایی در فیلم سینمایی Flash Gordon نیز میباشد. نام آژاکس دست کم در چهار مدل اتومبیل، دو شرکت ضبط موسیقی، یک تیم فوتبال هلندی و یک بازی پر زدوخورد کامپیوتری به کار برده شده است. زمانی مسئولین شرکت Colgate-Palmolive به دنبال یک نام تجاری جالب برای دستهای از محصولات شوینده خانگی خود بودند، آنها نام آژاکس را برگزیدند.
آژاکس از آن دسته کلماتی است که میتوان برای ایجاد تصویر سحرآمیزی از قدرت و توانایی به آنها تکیه کرد. کلماتی چون Excelsior و Excalibur هم از این دستهاند. شاید وجود حرف X در ترکیب با یک عبارت نشأت گرفته از اساطیر برای جذاب کردن یک کلمه کفایت میکند.
در دنیای وب که آکنده از اسمای عجیب شده است، میشد پیشبینی کرد که دیر یا زود نام آژاکس هم بالاخره در این میان سر بر میآورد.
ماجرای جسی جیمز گرت
جسی جیمز گرت (Jesse James Garrett) یک معمار اطلاعات، نویسنده و شریک در بنیانگذاری شرکت Adaptive Path در سن فرانسیسکو بود. در فوریه 2005، وی یک مقاله در سایت وب شرکت Adaptive Path باعنوان آژاکس : نگرش جدیدی بر برنامههای کاربردی تحت وب منتشر ساخت.
در این مقاله، گرت برای تشریح تکنیکهایی که در سبک جدید برنامههای کاربردی تحتوب مورد استفاده قرار میگرفتند، برای اولین بار نام آژاکس (Ajax) را ابداع نمود. در آن زمان Google Suggest و Google Map دو ابزار مبتنی بر مرورگری بودند که میتوانستند این نوع تعامل و واکنشپذیری که معمولا در برنامههای کاربردی رومیزی (Desktop) استفاده میگردد را نشان دهند. اما تا قبل از آن مقاله گرت هیچ نام خاصی وجود نداشت که بتوان برای تکنولوژیهایی که این برنامهها را تا این حد جالب توجه کرده بودند، بهکار برد.
هنگامی که این مقاله در ابتدا در سایت وب Adaptive Path پدیدار گشت، تمامی حروف کلمه AJAX با حروف بزرگ نوشته شده بودند. این مساله از آنجا نشأت کیگرفت که در اصل قرار بود این کلمه به عنوان مخففی برای Asynchronous JavaScript and XML بهکار برده شود. حروف اول این عبارت در کنار هم اسم ساده و جالب جنگجوی مورد علاقه ما در جنگ تروا را ترسیم مینمایند، با این وجود تاثیر این کلمات در توصیف تکنولوژیهای مورد بحث چندان زیاد نیست.
این گفته درست است که بیشتر گونههای جدید برنامههای کاربردی وی غیرهمزمان (Asynchronous) میباشند. به عبارت دیگر، تعاملات در پشت صحنه و بدون درگیر نگاهداشتن مرورگر روی میدهند. امام غیرهمزمان بود در آژاکس اجباری نیست. به راحتی میتوانید یک تعامل را همزمان تعیین نمایید.
بهویژه، وجود حرف X در این عبارت گمراهکننده است. این حرف بر الزامیبودن وجود XML در برنامههای آژاکس دلالت میکند، درحالی که چنین چیزی حقیقتا نادرست است. برای رعایت بیطرفی، باید بگویم که دلیل وجود حرف X کلمه XML است که در XMLHttpRequest بهکار رفته است
- XMLHttpRequest تکنولوژی مرکزی مورداستفاده در بیشتر برنامههای آژاکس است - اما XMLHttpRequest چندان برای نامگذاری جالب و جذاب بهنظر نمیرسد.
جسی جیمز گرت بعدا مقالهاش را بهروز کرد و روشن ساخت که منظورش از Ajax یک مخفف نبوده است.
حتی اگر آژاکس را بهعنوان یک مخفف بهکار نبریم، این نام باز هم برای کنار هم قرار دادن گروهی از تکنولوژیها در یک کلمه عالی است. البته این امر نتوانست از بروز خشم بسیاری از برنامهنویسان کهنهکار آن دوران جلوگیری نماید. آنها اعتراض میکردند که "این گفتهها چیز جدیدی نیست، ما سالها این کارها را انجام دادهاین و به آن اسکریپتنویسی از راهدور (Remote scripting) میگفتیم. آژاکس فقط یک اسم است که میان مردم مرسوم شده است."
با اینکه یک عبارت مخصوص حرفهایهای کامپیوتر همچون «اسکریپتنویسی از راهدور» هرگز جذابیت نام یک جنگجوی نبرد تروا را ندارد، اما در درون این مخالفتها تند و تیز حقیقتی هم وجود داشت. هیچیک از تکنولوژیهای بهکار رفته در آژاکس جدید نیستند. هیچیک از آنها ویژه آژاکس ساخته نشدهاند. با این وجود، این امر دلیلی برای کنارگذاشتن اصطلاح آژاکس نمیباشد.
کلمه آژاکس کوتاه است و برای توصیف یک روش قاعدهمند خاص که از دستهای از تکنولوژیها سود میبرد ساده و کارا است. این عبارت به توسعهدهندگان و استفادهکنندگان بهطور یکسان اهمیت کارایی و طراحی در برنامههای کاربردی مدرن تحتوب را یادآوری مینماید.
اما این سوال همچنان بهقوت خود باقی است که معنا و مفهوم نام آژاکس چیست؟
این مقاله برگرفته شده از کتاب Bulletproof Ajax
نوشته جرمی کیت (Jeremy Keith)