دوشنبه ۳۱ اردیبهشت ۱۴۰۳

Monday, May 20, 2024 GMT +3:30

اصطلاحات و مفاهیمی که مدیر سایت باید بداند!

web-site-server-host

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

تاریخچه وب


به لحاظ تاریخی شبکه جهانی وب (WWW مخفف World Wide Web) در سال 1990 میلادی توسط یکی از فیزیک دانان سازمان تحقیقات هسته ای اروپا (European Organization for Nuclear Research معروف به CERN) به نام Tim Berners-Lee ابداع شد و در سال 1993 استفاده از آن برای عموم ممکن گردید، البته در ابتدا هنوز پروتکل HTTP و کدهای HTML وجود نداشت و از این شبکه بیشتر برای نقل و انتقال فایل ها و نامه های الکترونیک به صورت متن فرمت بندی نشده یا Plain-text استفاده می شد.

سایت


سایت یا وبسایت (Website) به برنامه ای بر بستر شبکه جهانی وب اطلاق می شود که می تواند بسته به اهداف و پدیدآورندگان، به صورت شخصی، اداری، شرکتی، سازمانی و... ایجاد شده باشد، یک وبسایت امروزی معمولا مجموعه ای از صفحات مرتبط با خروجی کدهای HTML است که می تواند دربرگیرنده محتوای مختلف شامل متن، تصویر، صدا، ویدئو و... باشد.
برای ایجاد یا مدیریت محتوای سایت معمولا از برنامه هایی تحت عنوان CMS (Content Management System یا سیستم مدیریت محتوا) استفاده می شود، صفحات سایت ها بر روی کامپیوترهای متصل به شبکه یا سرورها قرار دارند و توسط ابزارهای استاندارد مانند مرورگرهای وب قابل فراخوانی، پردازش و استفاده هستند، تفاوت عمده یک سایت با عناوین مشابه مانند وبلاگ و صفحات شخصی در این است که وبسایت ها معمولا تحت دامنه مستقل و بر روی میزبان (سرور) خریداری شده قرار می گیرند که امکانات کاملتری در اختیار مدیر نسبت به وبلاگ قرار می دهد، در صورتی که امکانات وبلاگ معمولا در چارچوب سرویس دهنده تعریف می شود و معمولا با محدودیت هایی روبرو هستیم.

پروتکل HTTP و HTTPS


از نظر فنی صفحات وب تحت قوانین پروتکل HTTP (مخفف Hypertext Transfer Protocol) فراخوانی و اطلاعات رد و بدل می شوند و در حالت عادی داده ها خام و رمزنگاری نشده هستند، نوع امن این ارتباط در بستر پروتکل HTTPS (مخفف Hypertext Transfer Protocol Secure) صورت می گیرد که در این حالت اطلاعات با الگوریتم های پیچیده ای رمزنگاری شده و در صورتی که به هر دلیل شخص دیگری به آنها دسترسی پیدا کند قادر به بازخوانی داده ها نخواهد بود، این پروتکل ها توسط کنسرسیوم جهانی وب (W3C یا World Wide Web Consortium) برای وضع قوانین فراگیر در وب معرفی شده اند و امروزه به عنوان استانداردهای اصلی اینترنت شناخته می شوند.
Web Admin Term

CMS


CMS یا Content Management System به سیستم های مدیریت محتوای سایت های وب اطلاق می شود که به کمک آنها کار ایجاد و مدیریت وبسایت ها تا حدود زیادی آسان و فرآیندها با سرعت بیشتری صورت می گیرد، معمولا از CMS ها برای ایجاد سایت، ارسال و مدیریت مطالب، دریافت نظرات کاربران، ایجاد صفحات جانبی و... استفاده می شود، امکانات و انواع CMS های وب بسیار متفاوت و متنوع هستند و معمولا تحت دو زبان برنامه نویسی پرکاربرد PHP و ASP نوشته می شوند.
مدیر سایت برای انتخاب یک CMS مناسب باید حتما اهداف و شرایط خود را در نظر بگیرد و شناخت کاملی از سیستمی که می خواهد از آن استفاده کند داشته باشد، تقریبا تمام CMS ها دارای نقاط ضعف و قوت منحصر به فردی هستند لذا انتخاب مناسب ترین گزینه باید با دقت انجام شود، از جمله رایج ترین عناوین سیستم های مدیریت محتوای متن باز یا Open-source می توان جوملا (Joomla)، وردپرس (Wordpress)، دیتالایف (DataLife Engine)، ام تی (Movable Type)، مامبو (Mambo)، نیوک (PHP Nuke)، دروپال (Drupal) و... را نام برد.

دامنه (دامین)


دامنه (دامین یا Domain) عنوان ثابت و اختصاصی آدرس سایت های وب است که به منظور تسهیل دسترسی و مدیریت نشانی سایت ها معرفی گردیده، به طور مثال دامنه Google.com یا Webgoo.ir هر کدام به یک سایت خاص اشاره دارند، هر Domain باید به آدرس DNS (مخفف Domain Name System) متصل شود که تعیین کننده میزبان و IP سرور آن است، در واقع عناوین متنی دامنه ها بیشتر برای انسان مهم است اما برای ماشین (مرورگرها، ربات ها و...) و در کل از لحاظ فنی برای دسترسی به آدرس های اینترنتی عنوان دامنه ابتدا به IP تبدیل (Resolve) می شود تا مشخصات مربوط به DNS آن به دست آید، یعنی وقتی آدرس دامنه ای را درخواست می کنیم مرورگر از IP آن دامین برای ارسال درخواست به سرور میزبان سایت مد نظر استفاده می کند، دقت کنیم بر خلاف نام دامنه DNS آن همیشه مقدار ثابت نیست و بسته به اینکه از سرور چه میزبانی استفاده کنیم متغیر خواهد بود.
آدرس دسترسی به دامنه ها معمولا با .www یا بدون آن شروع شده و به پسوندهایی مانند com، .org، .net، .ir. و... ختم می شود، ثبت دامنه مناسب سنگ بنای ایجاد سایت در اینترنت و اولین چیزی است که با کاربران در تعامل است به همین دلیل در انتخاب نام مناسب چند نکته اهمیت زیادی دارد از جمله: پیدا کردن نام دامنه ای که قبلا ثبت نشده باشد، کوتاه بودن عنوان دامنه، داشتن مفهوم مرتبط با نوع فعالیت، راحتی در نوشتن و خواندن نام دامنه، عدم نقض حق افراد یا شرکت های دارای برند تجاری معروف و...
نکته 1: با ثبت دامنه مالکیت آن برای دوره ای (به طور مثال یک سال یا پنج سال) به ثبت کننده تعلق می گیرد و هیچ فرد دیگری نمی تواند عین آن نشانی را ثبت کند، با انقضای دوره نیز می توانیم مجددا دامنه خود را تمدید کرده و تا هر زمان که لازم بود این کار را تکرار کنیم و مالکیت آن را در اختیار داشته باشیم.
نکته 2: به لحاظ تاریخی استفاده از دامنه ها ی وب  توسط آژانس تحقیقات پیشرفته در زمینه شبکه ARPANET (مخفف Advanced Research Projects Agency Network) در سال 1983 میلادی بنیانگذاری شد.
نکته 3: با توجه به اهمیت اینترنت و متاسفانه وجود افراد و شرکت های فعال در زمینه خرید و فروش آدرس های وب، در حال حاضر بسته به نوع فعالیت مد نظرمان ثبت دامنه های مناسب ممکن است کمی دشوار و به نوعی به یک چالش تبدیل شود، به همین دلیل توصیه می کنیم برای انتخاب و ثبت دامنه حرفه ای مطالعه، تلاش و در صورت لزوم زمان زیادی اختصاص دهیم.

هاست (میزبان)


سایت های وب برای اینکه همیشه آنلاین و در دسترس باشند باید بر روی کامپیوترهای خاصی تحت عنوان سرور قرار گیرند و هاست (Host) در اصطلاح به سرور میزبان سایت های وب گفته می شود، جهت راه اندازی سایت های وب دسترسی به سرور، فضای حافظه ی ذخیره سازی (هارددیسک) بر روی آن سرور و حجمی از ترافیک تبادل اطلاعات جهت سرویس دهی به بازدیدکنندگان ضروری است، این خدمات را معمولا شرکت هایی تحت عنوان وب هاستینگ (Web Hosting) ارائه می دهند که ممکن است شرایط، کیفیت و هزینه سرویس هایشان متفاوت باشد، به طور مثال سرورها می توانند اشتراکی باشند و هم زمان به چندین سایت خدمات ارائه کنند یا اختصاصی باشند و صرفا به یک یا چند سایت خاص سرویس ارائه کنند.
معمولا شرکت های معتبر در مراکزی تحت عنوان دیتاسنتر (Data Center) یا محل نگهداری سرورهای وب که طبق اصول و استاندارهای ایمنی از انواع حوادث محافظت می  شوند، سرورهای اختصاصی خود را نگهداری می کنند و عده ای نیز به خاطر هزینه بر بودن این کار و دردسرهای احتمالی ترجیح می دهند سرورهایشان را در محل هایی به جزء دیتاسنترها نگهداری کنند یا به عنوان واسطه با شرکت های بزرگتر همکاری داشته باشند که این مسائل معمولا باعث بروز مشکلاتی مخصوصا برای کاربران می شود، در انتخاب یک هاست مناسب حتما باید به محل نگهداری سرورها، امکانات، کیفیت خدمات و پشتیبانی آن حتی المقدور با پرس و جو از کاربران در انجمن های مرتبط اطلاع کسب کنیم، انتخاب برخی هاست های بی کیفیت مخصوصا برای کسانی که آشنایی و مهارت لازم در گرفتن پشتیبان از اطلاعات یا انتقال سایت به میزبانی دیگر را ندارند می تواند دردسرهای زیادی ایجاد کند.

فضای هاست


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

ترافیک ماهانه


ترافیک ماهانه که بعضا پهنای باند یا Band Width سرور نیز گفته می شود، حداکثر سقف مجاز انتقال اطلاعات (دانلود و آپلود) بین سرور و مرورگر کاربران است و معمولا به صورت ماهیانه محاسبه می شود، دقت کنیم که هر نوع دریافت یا ارسال اطلاعات شامل این ترافیک می شود، به طور مثال بازدید کاربر از سایت و بارگذاری فایل هایی مانند تصویر، استایل CSS، صفحات HTML و... در محاسبه میزان حجم مصرفی ترافیک ماهانه به حساب می آیند، حتی بازدید سایت توسط ربات های خزنده نیز مقداری از فضای سرور را مصرف می کند (البته چون ربات ها معمولا به نسخه متنی و تصاویر بیشترین اهمیت را می دهند و فایل های CSS، JS و... را بارگذاری نمی کنند در مقایسه با کاربران عادی میزان حجم مصرفی آنها خیلی کمتر است)، لذا همیشه باید به این نکته توجه کنیم و تا حد ممکن رعایت استانداردهای مصرف بهینه پهنای باند (به فرض کاهش حجم تصاویر یا فشرده کردن فایل ها) را مد نظر داشته باشیم، شاید تصور کنیم در سرورهای با پهنای باند به فرض نامحدود این نکته اهمیتی ندارد، البته از نظر مصرف منابع سرور حق با شماست اما برای کاربران این موضوع اهمیت زیادی دارد، چه به لحاظ سرعت بارگذاری صفحات و چه به لحاظ مسائل مالی و مصرف میزان ترافیکی که آنها از سرویس دهنده اینترنت خود دریافت می کنند.

کنترل پنل (Control Panel)


مشابه سیستم عامل ویندوز کنترل پنل به قسمتی از برنامه مدیریت سرور گفته می شود که در محیط آن می توانیم امکانات و تنظیمات مربوط به سایت خود را مدیریت کنیم، سرورهای مختلف معمولا از برنامه های متفاوتی بدین منظور استفاده می کنند به طور مثال برنامه cPanel در سرور لینوکس یکی از معروف ترین ها در این زمینه است، همچنین برنامه DirectAdmin نیز در سرورهای لینوکس قابل نصب و استفاده است، در سرورهای ویندوز معمولا از کنترل پنل Parallels Plesk یا Parallels Helm استفاده می کنند، دقت داشته باشیم بیش از اینکه به نام کنترل پنل توجه کنیم باید به سرویس های ارائه شده توسط هاست خود دقت کنیم چرا که ممکن است بسیاری از امکانات موجود در برنامه توسط شرکت میزبان غیرفعال شده باشد، علاوه بر این همیشه باید قبل از انتخاب کنترل پنل سعی کنیم با پیش نمایش آن کار کنیم تا با چند و چون برنامه آشنا شویم.

سیستم نام دامنه یا DNS


اصطلاح سیستم نام دامنه یا DNS که به آن نام سرور و کارگذار دامنه نیز می گویند یکی از حساس ترین مسائل برای دامنه سایت محسوب می شود، DNS (مخفف Domain Name System) ساز و کاری است که در آن آدرس نامی سرور یا سرورهای تخصیص داده شده به دامنه سایت در بستر شبکه اینترنت با بانک اطلاعاتی (دامنه <> IP) تطبیق داده شده و تبدیل (Resolve) به IP اختصاصی سرور میزبان سایت می شود، این اطلاعات در بانک DNS در کامپیوترهای آنلاین پراکنده شده در سراسر جهان موجود هستند و به فواصل زمانی کوتاه با آخرین تغییرات به روزرسانی می شوند:
https://public-dns.info/
در ساز و کار DNS زمانی که به طور مثال به دنبال دامنه Google.com یا Webgoo.ir هستیم مرورگر ابتدا به کامپیوترهایی که در شبکه اینترنت اطلاعات مربوط به DNS دامنه ها را در خود نگهداری می کنند درخواست تبدیل نام دامنه سرور به IP اختصاصی آن را می دهد و پس از دریافت آدرس IP سرور درخواست را به میزبان اصلی سایت ارسال می کند، به این صورت وقتی به یک دامنه مراجعه می شود در واقع به IP مربوط به DNS تنظیم شده آن رجوع شده است، به زبان ساده دامنه های متشکل از حروف و اعداد به نام سرور و سپس به IP آن تبدیل شده و بر این اساس آدرس دسترسی به سایت های مختلف از هم شناسایی و تفکیک می شوند:
http://google.com ----> ns1.google.com ----> 8.8.8.8
نکته 1: آدرس IP سرور میزبان می تواند بدون تغییر عنوان DNS آن تغییر کند، به طور مثال DNS فرضی 
ns1.example.com
ممکن است مدتی IP خاصی داشته باشد و سپس به شماره دیگری تغییر کند بدون اینکه تاثیری در نام سرور و روند کاری سایت های زیر مجموعه داشته باشد.
نکته 2: اعمال تغییرات بر روی آدرس DNS دامنه سایت ها معمولا از طریق کنترل پنل هایی که توسط شرکت های مجاز برای ثبت دامنه ارائه می شود ممکن است و پس از ثبت اطلاعات جدید مدت زمانی کمتر از 24 ساعت طول می کشد تا آخرین تغییرات در سرورهای مستقر در سراسر جهان (DNS Servers) اعمال شود.

سرور لینوکس


سرور لینوکس به سرور مبتنی بر سیستم عامل لینوکس (Linux) گفته می شود، همانطور که می دانیم لینوکس یکی از معرف ترین سیستم عامل های متن باز (Open-source) است و در زمینه کاربردهای تحت وب گزینه بسیار مناسبی برای برنامه های مدیریت سایت مخصوصا CMS های برنامه نویسی شده به زبان PHP به حساب می آید، لینوکس از پروتکل ها و برنامه های مختلفی پشتیبانی می کند از جمله Apache HTTP Server، SSH Server و...،  هزینه راه اندازی و نگهداری سرور مبتنی بر لینوکس معمولا به صرفه تر از سرور ویندوز بوده و از سرعت و کیفیت بسیار خوبی نیز برخوردار است (البته در شرایط برابر و به شرطی که توسط شرکت معتبری نگهداری و پشتیبانی شود).
اگر از سیستم های مدیریت محتوای مبتنی بر PHP استفاده می کنیم یا قصد داریم سیستم مدیریت سایتمان را با زبان برنامه نویسی PHP بنویسیم توصیه می شود حتما از سرور لینوکس برای میزبانی آن استفاده کنیم، چرا که از نظر سازگاری و هزینه با مشکلات کمتری روبرو خواهیم بود.

سرور ویندوز


در مقابل سرورهای لینوکس معمولا سرورهای تحت سیستم عامل ویندوز (Windows) ساخت شرکت مایکروسافت قرار می گیرند، ویندوز در مقایسه با لینوکس کارکردهای خاص خودش را دارد و نمی توان گفت که کدام یک بهتر است (بستگی به هدفمان و نوع زبان برنامه نویسی دارد)، به طور مثال برنامه نویسان زبان ASP.NET معمولا باید در بستر سرور ویندوز سایت خود را برپا کنند، از طرفی هزینه نگهداری سرورهای ویندوز به دلیل متن باز نبودن و نیاز به پرداخت هزینه و خرید برنامه های مورد نیاز اغلب بیشتر است، اگر به زبان ASP.NET برنامه نویسی می کنیم احتمالا ناچاریم از سرورهای تحت سیستم عامل ویندوز استفاده کنیم که البته سرعت و سازگاری سرورهای ویندوز نیز به خوبی لینوکس است و در ضمن این سرورها معمولا از کدهای PHP نیز در کنار برنامه نویسی ASP.NET پشتیبانی می کنند.

سرور مجازی (VPS)


سرور مجازی (VPS یا Virtual Private Server) به حالتی گفته می شود که سرور معمولی منابع فیزیکی (هارددیسک، CPU، حافظه RAM و...) خود را با اعمال تنظیماتی بین چند DNS به صورت مجزا و مستقل از هم به اشتراک می گذارد، مشابه حالتی که چند سیستم عامل در یک کامپیوتر نصب شود با این تفاوت که در اینجا ممکن است همه ی DNS ها یا تعدادی از آنها به طور همزمان اما مستقل از هم از منابع فیزیکی سرور استفاده کنند، در واقع سرور مجازی فضای مجزا و اختصاصی به صورت شبیه سازی شده با سرور عادی است اما امکانات سخت افزاری بین چند سرور به صورت مجازی تقسیم شده است و مشخص است که کیفیت سرورهای مجازی به اندازه سرور عادی نیست.
اصطلاح سرور مجازی را نباید با هاست اشتراکی اشتباه گرفت، سرور عادی ممکن است به چند سرور مجازی و هر سرور مجازی خود به چند سایت اشتراکی تقسیم شود، همچنین سرور عادی می تواند بدون تبدیل به سرور مجازی برای سرویس دهی اشتراکی به تعداد زیادی سایت در نظر گرفته شود.
Web Server VPS
در حالت کلی و با لحاظ مساوی بودن سایر شرایط از نظر کیفیت سرور عادی رتبه اول، سرور مجازی رتبه دوم و سرور اشتراکی رتبه سوم را خواهند داشت هرچند در عمل کیفیت خدمات بستگی زیادی به پشتیبانی شرکت میزبان و قدرت سخت افزارهای استفاده شده دارد و صرف توجه به نام ممکن است گمراه کننده باشد! بهترین حالت برای سایت های متداول قرار گرفتن روی سرور عادی اشتراکی با کیفیت مطلوب است نه سرورهای مجازی اختصاصی، معمولا هزینه خریداری سرورهای مجازی اختصاصی بسیار بیشتر و عموما برای دارندگان سایت های چندگانه و پربازدید یا ارائه کنندگان سرویس های پرکاربرد وب مناسب است.

Uptime سرور


معمولا در شرکت های هاستینگ اصطلاح Uptime به زمان تضمین شده ای می گویند که طی آن سرور بدون وقفه و مشکل به سرویس دهی می پردازد، متاسفانه در مورد برخی شرکت های میزبان این عبارت چندان جنبه واقعی ندارد و علی رغم اینکه برخی عناوینی چون آپ تایم 99 درصد و حتی 100 درصد را در هنگام خرید عنوان می کنند اما در عمل نهایتا به 95 درصد ختم می شود و احتمالا گاه و بیگاه سرور سایت دچار اختلال خواهد بود، در مقابل شرکت های معتبر نیز تلاش می کنند که به وعده های خود عمل کنند تا سایت های زیرمجموعه نزدیک به 100 درصد آپتایم داشته باشند، در نگاه واقع بینانه ارائه سرویس بدون بروز مشکلات فنی عملا چندان متصور نیست اما خیلی مهم است که مشکل سریعا توسط شرکت میزبان شناسایی و در حداقل زمان ممکن رفع گردد، هر چه مدت زمان بروز اختلال در سایت ها بیشتر باشد به همان نسبت خسارت هایی به لحاظ SEO و کاهش میزان محبوبیت نزد کاربران درپی خواهد داشت که برای کسب و کارهای آنلاین بسیار ناخوشایند است، به همین دلیل توصیه می شود برای اطمینان از اینکه هاست مطمئنی را انتخاب می کنیم از آپتایم سایت های میزبانی شده توسط آن شرکت پیش از خرید از طرق مختلف (انجمن ها، سایت هایی که IP سرورها و وضعیت میزان آنلاین بودن آنها را نمایش می دهند و...) اطلاعات کسب کنیم.

Down شدن سرور


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

فایل htaccess.


در سرورهای Apache برای کنترل عملکردهای حین اجرا بدون اعمال دستکاری در تنظیمات اصلی سرور فایل htaccess. (بدون نام و صرفا با پسوند htaccess.) در نظر گرفته شده است، این فایل در ریشه سایت یا بین دایرکتوری ها به صورت htaccess. (بدون نام) قابل ایجاد است و معمولا درون آن دستورات خاصی به صورت متن و به کمک عبارات با قاعده (Regular Expressions) نوشته می شود، به طور مثال:
RewriteEngine on
RewriteCond %{HTTP_REFERER} example\.com [NC]
RewriteRule .* - [F]
با این دستور در صورتی که کاربر از سایت فرضی example.com وارد سایتمان شود با خطای 403 (Forbidden) مواجه خواهد شد.
به دلیل اینکه فایل htaccess. به صورت مجزا از تنظیمات اصلی سرور است و برای سایت ها و حتی دایرکتوری های مختلف می تواند متفاوت باشد، برای مقاصد متفاوتی از جمله دوباره نویسی لینک های داینامیک به استاتیک (Rewriting)، کنترل دایرکتوری ها با کلمه عبور (Authentication)، تنظیم اطلاعات مربوط به یونیکد صفحات، مسدود کردن IP، تنظیم و سفارشی کردن صفحات خطا و ... استفاده می شود.
نکته: در سرورهای Apache فایل دیگری به نام httpd.conf وجود دارد که به طور مستقیم و یکپارچه تنظیمات سرور را مدیریت می کند.

فایل php.ini


در کنار فایل htaccess که تنظیمات سرورهای Apache را مدیریت می کند، در برنامه های نوشته شده به زبان PHP می توانیم از فایل دیگری به نام php.ini برای کنترل تنظیمات و امکانات (Configuration) مربوط به مفسر PHP استفاده کنیم، البته این مسئله تا حدود زیادی مخصوصا در سرورهای اشتراکی به اختیارات تعریف شده توسط مدیران هاست برمی گردد و معمولا دسترسی مستقیم به این فایل میسر نیست و باید از کدنویسی درونی PHP برای اعمال تغییرات حین اجرا استفاده کنیم، در هر حال برای آشنایی بیشتر همین قدر بدانیم که از فایل php.ini می توانیم به فرض برای غیرفعال یا فعال کردن برخی امکانات در PHP استفاده کرد و تنظیمات پیش فرض مفسر را تغییر داد، به طور مثال:
; any text on a line after an unquoted semicolon (;) is ignored
[php] ; section markers (text within square brackets) are also ignored
; Boolean values can be set to either:
;    true, on, yes
; or false, off, no, none
register_globals = off
track_errors = yes

; you can enclose strings in double-quotes
include_path = ".:/usr/local/lib/php"

; backslashes are treated the same as any other character
include_path = ".;c:\php\lib"
در این نمونه کد هر خطی که با کاراکتر ;  یا [php] و ; شروع شود صرفا نقش یادداشت را دارد و بقیه خطوط به عنوان دستور مبتنی بر پارامتر و مقدار برای مفسر PHP قابل تشخیص است.

پایگاه داده


پایگاه داده یا دیتابیس (Database) به محل ذخیره سازی و نگهداری اطلاعات با ساختار مشخص در برنامه های کامپیوتری گفته می شود، هر پایگاه داده از یک یا چند جدول و هر جدول از چند ستون تشکیل شده که ردیف های اطلاعات را در خود نگهداری می کنند، به طور مثال در سیستم های تحت وب مدیریت محتوا (CMS) هنگامی که مطلب جدیدی ارسال می کنیم این مطلب در ردیف خاصی در دیتابیس ذخیره می گردد تا در هنگام لزوم از اطلاعات آن استفاده کنیم، در واقع شیوه و ساختار دیتابیس ها شباهت زیادی به دنیای واقعی و چینش کتاب ها در قفسه های کتابخانه دارد.
در حال حاضر بیشتر سایت ها از این شیوه داینامیک استفاده می کنند و مدیریت وبسایت های بزرگ بدون استفاده از پایگاه داده تقریبا غیر قابل تصور است، عملا تنها سایت های کوچک با صفحات استاتیک و ثابت آن هم به تعداد محدود و در شرایط خاص بی نیاز از دیتابیس هستند و در سایر موارد بهترین گزینه استفاده از پایگاه داده جهت ذخیره سازی و بازیابی ساختارمند اطلاعات است، دیتابیس ها انواع و کارکردهای مختلفی دارند اما از بسیاری جهات به هم شبیه هستند، از جمله مهم ترین سیستم های مدیریت پایگاه داده می توان Oracle، Microsoft SQL Server، MySQL و SQLite را نام برد، البته امروزه از MySQL برای برنامه نویسی با زبان PHP و از Microsoft SQL Server برای برنامه نویسی با زبان ASP.NET بیشتر استفاده می شود، آموختن اصول کار با پایگاه داده در صورت آشنایی با یکی از زبان های برنامه نویسی سمت سرور کار چندان سختی نیست و طی مدتی کوتاه تا حدود زیادی می توان بسیاری از مطالب را فرا گرفت.

ایمیل اختصاصی


تصور بسیاری از مردم از ایمیل محدود به سرویس های رایگان ارائه شده توسط شرکت های معروفی چون یاهو، گوگل، مایکروسافت و... است، اما زمانی که سایتی ایجاد می کنیم در اغلب موارد می توانیم ایمیل اختصاصی با عنوان دامنه سایت نیز داشته باشیم به فرض
info[at]example.com
برای دسترسی به این قابلیت در سرورهای مختلف در کنترل پنل قابلیت ایجاد حساب های ایمیل اختصاصی برای دامنه ها وجود دارد و پس از ایجاد حساب کاربری و تعیین آدرس، می توانیم از برنامه های مدیریت ارسال و دریافت ایمیل مانند برنامه Outlook یا برنامه های تحت وب (Horde، Roundcube، SquirrelMail و...) موجود در کنترل پنل استفاده کنیم.

DDoS


DDoS یا Distributed Denial of Service attack به نوعی حمله و ایجاد اختلال در سرورهای وب گفته می شود که طی آن معمولا در مدت زمانی واحد تعداد زیادی درخواست به یک سرور ارسال می شود و این عمل موجب مختل شدن و نهایتا از کار افتادن سرویس دهی آن سرور می شود، DDoS یکی از رایج ترین شیوه های ایجاد اختلال در سرورهای وب است که البته بسته به میزان قدرت مهاجم و قابلیت های نرم افزاری و سخت افزاری سرور، آسیب پذیری نیز در برابر آن متفاوت است، مدت زمان حمله های DDoS ممکن است خیلی کوتاه باشد یا در مقابل اگر اقدامات لازم انجام نشود خیلی طولانی شود و در این مدت سایت به کندی بارگذاری یا به کل در وضعیت Down قرار گیرد.

MYSQL/SQL Injection


اصطلاح SQL Injection یا MySQL Injection به فرایند نفوذ به پایگاه داده گفته می شود که طی آن هکرها از نقاط ضعف برنامه نویسی سایت برای تخلیه یا حذف اطلاعات ذخیره شده در پایگاه داده استفاده می کنند، رایج ترین روش در این شیوه استفاده از فرم های وب یا آدرس های URL صفحات سایت است، مهاجم با افزودن دستورات خود به لینک های سایت یا با فرستادن دستوراتی به صورت متن های داخل فیلد و فرم های HTML سعی می کند تغییراتی بر روی پایگاه داده اعمال کرده و اطلاعات را دستکاری، سرقت یا حذف کند، به طور مثال اگر دستور اصلی به صورت زیر باشد:
SELECT * FROM users WHERE user = '' AND pass = '';
در صورت عدم ایمن سازی مناسب هکر می تواند با دستکاری اطلاعات ارسالی از فرم دستور را به شکل زیر تغییر دهد:
SELECT * FROM users WHERE user = '' OR '1' = '1' AND pass = '' OR '1' = '1';
کنترل این نوع حملات در عین سادگی کار حساسی است و باید با دقت بالا تمام کدها و حفره ها بررسی شوند و حتما هر نوع اطلاعات که مخصوصا توسط کاربران دریافت می شود به صورت یکپارچه و چند لایه ایمن سازی شوند، آشنایی با شیوه های حفاظت از پایگاه داده در مقابل این نوع حملات نیازمند فراگیری مباحث ایمن سازی پایگاه داده در زبان های برنامه نویسی نظیر PHP است.
دسته بندی: مهارتهای وب » دانستنی ها
related مطالب بیشتر:
آموزش کاربردی عبارات با قاعده (Regular Expressions)
دلایل بهم ریختن قالب وبلاگ و سایت
چگونه با برنامه Outlook ایمیل ارسال و دریافت کنیم؟
حمله DDoS چیست و چگونه از آن جلوگیری کنیم؟
لیست کدهای وضعیت HTTP و معنی خطاهای سرور
دیدگاه
more ۱۸ دیدگاه برای این مطلب ارسال شده است.
more دیدگاه جدید بر اساس تاریخ ارسال در انتهای دیدگاه های موجود نمایش داده می شود.
شیدا
۱۰:۳۰ ۱۳۹۱/۰۵/۱۷
با سلام به مدیر سایت
یه سوال داشتم فرق بین asp و asp.net چیه؟
تفاوت اصلی این دو در فرم ورک NET. است، ASP.NET دارای این فرم ورک است که خود شامل کتابخانه ها و کلاس های کاربردی و قابل استفاده برای پروژه های وب است، با ASP.NET می توانید خیلی از موارد را بدون کدنویسی اضافه از پیش در اختیار داشته باشید، اما ASP یک زبان پایه و کلاسیک است و به تدریج توسعه یافته، امروزه برای مقاصد وب از ASP.NET استفاده می شود و می توانیم با ترکیب زبان HTML و #C یا VB.Net برنامه بنویسیم.
۲۳:۲۲ ۱۳۹۲/۰۴/۱۴
سلام خسته نباشید استفاده کردم
ممنون
هژِیر
۱۱:۲۲ ۱۳۹۲/۰۴/۳۰
ممنون مفید بود
ali
۱۷:۰۸ ۱۳۹۳/۰۲/۰۳
خدا خیرت بده حاجی کلی استفاده کردیم
۲۰:۲۳ ۱۳۹۳/۰۲/۰۹
عالي و بسيار اموزنده بود مرسي
پوران
۲۱:۲۲ ۱۳۹۳/۰۲/۱۰
واقعا از شما بخاطر به اشتراک گذاشتن اطلاعاتتون و وقتی که میگذارین سپاسگزارم. مطمئن باشید دعای خیر همیشه به همراه شماست.
mehdy
۱۳:۱۲ ۱۳۹۳/۰۲/۱۸
ممنون دستت درد نکنه خیلی عالی بود.
۱۵:۳۹ ۱۳۹۳/۰۴/۲۱
با سلام
می خواستم بدونم برای یک سایت پربازدید چه هاستی را بخرم؟؟؟
شما خودتان از چه هاستی برای سایتتان استفاده کنید؟؟؟
سرور مجازی؟؟ یا هاست اشتراکی ؟؟
عناوین خیلی مهم نیست! میزان بازدید به خودی خود موثر است، اما این اثر بسته به حجم داده های سایت و نوع کدنویسی میتواند خیلی متفاوت باشد، سایتی که بیشتر محتوای متنی سبک دارد یا بهینه کدنویسی شده (کمترین فشار به دیتابیس) با سایتی که فایل های حجیم مانند تصاویر، فیلم و... دارد یا کدنویسی آن ناشیانه است، با هم متفاوت هستند.
در مورد سرور نیز همین مسئله صادق است، سرور اشتراکی که به تعداد معقول کاربر داشته باشد و قدرت و پشتیبانی بالا، نسبت به سرور مجازی که پشتیبانی ضعیف داشته باشد یا قدرت پائین، ارزش بیشتری دارد!
نتیجه: در درجه اول میزان حجم (مصرف) داده های سایت و تعداد تقریبی بازدید در روز باید مشخص شود، در حالت دوم کیفیت سرور (چه مجازی، چه اشتراکی) در نظر گرفته شود.
۱۸:۰۵ ۱۳۹۳/۰۴/۲۳
با سلام
برای خرید درگاه پرداخت اینترنتی باید چکار کرد؟؟؟
گام اول این است که در یک بانک صاحب درگاه، حساب داشته باشید، البته ابتدا باید شرایط واگذاری درگاه آنها را به دقت مطالعه کرده باشید، سپس فرم های مربوطه را تکمیل و درخواست خود را ثبت می کنید، پشتیبانی بانک پس از مدتی (بین بانک های مختل متفاوت است) روند ادامه کار را برایتان مشخص خواهند کرد، در مرحله نهایی باید با اطلاعات فنی که بانک در اختیارتان قرار می دهد، اسکریپتی برای اتصال به درگاه بنویسید یا اینکه از ماژول های آماده استفاده کنید (این قسمت تا حدودی نیازمند داشتن دانش فنی وب یا فردی آشنا با این مسائل است).
حامد
۰۳:۲۵ ۱۳۹۳/۰۵/۲۸
زکات علمت را پرداخته ای
ممنون عالی تمام مطالب
علی
۱۶:۰۹ ۱۳۹۳/۱۰/۲۷
سلام، مفهوم 'پنهای باند' رو با 'ترافیک' اشتباه کردید.
از جهتی حق با شما است، اما اصطلاح Bandwidth در بین شرکت های هاستینگ (چه داخلی و چه خارجی) اصطلاحی متداول است که با جستجو در گوگل به میزان فراگیری آن می توان پی برد! شاید دلیل آن این باشد که حجم خاصی از ترافیک سرور مد نظر است.
بهزادی
۱۸:۲۱ ۱۳۹۳/۱۱/۱۶
سلام
دمو کردن یک فایل یا یک برنامه چیست؟
پیجی طراحی کردم. حالا باید آنرا دمو کنم .
دمو کردن یعنی چه؟
چگونه باید آنرا دمو کنم؟
میشه در این زمینه راهنمایی بفرمایین؟
نمیدونستم باید این سوال را از کجا بپرسم برای همین اینجا مطرح کردم؟
با تشکر.
Demo به معنی ایجاد نسخه پیش نمایش یا آزمایشی از یک برنامه است، با این کار بدون اینکه تمام امکانات اصلی برنامه در اختیار مخاطب قرار گیرد، امکان تست (به طور مثال پیش از خرید) برای او فراهم می شود، ایجاد نسخه Demo قانون یا روش خاصی ندارد و بسته به سلیقه و نیاز می توان بخشی از قابلیت ها را از برنامه اصلی حذف و آن را به عنوان نسخه پیش نمایش معرفی کرد.
بهزادی
۱۴:۲۶ ۱۳۹۳/۱۱/۱۷
مرسی از پاسخ.
حمید
۲۰:۱۱ ۱۳۹۴/۰۲/۱۱
سلام واقعا خسته نباشید خیلی استفاده کردم مرسییییی
۱۲:۴۵ ۱۳۹۴/۰۳/۱۶
بسيار عالي. ممنون مدير جان. کل مطالب سايتتون مفيد بود سپاسگذارم
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
1 × 9
20 × 20
=
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
سعیدی
سلام می تونید اینو اصلاح کنید؟ چون من با توضیحات شما یاد نگرفتم خیلی ممنون اگه یکبار اصلاح کنید واسه بعد یاد...
۱۴۰۳/۰۲/۲۲

سعیدی
دست شما درد نکنه وقتی اینطوری تغییر میدم و به class می نویسم کار نمی کنه و ارور میده
۱۴۰۳/۰۲/۲۱

سعیدی
دست شما درد نکنه خیلی خوب بود این یکی رو چطوری فراخوانی کنم؟ این واسه مناسبت هاست خیلی ممنون
۱۴۰۳/۰۲/۱۹

سعیدی
با سلام آیا می شه این تابع رو بصورت class نوشت؟ میخوام وقتی کد ملی میدم با این تابع فراخوانی بشه و شهر...
۱۴۰۳/۰۲/۱۹

پرتو
مگه شما دارین اموزشش رو؟ آدرسش رو میزارید؟ یا اگر سایتی رو میشناسید که آموزش داده باشه معرفی کنید ممنون میشم من خیلی گشتم توی...
۱۴۰۳/۰۲/۱۸

پــرتو
سلام خوبید ؟ خسته نباشید گوشی پدرم شیاومی هست ایمیلمو ثبت کردم داخلش بعد می خواستم حذفش کنم نمیشد می گفت همه داده های توی...
۱۴۰۳/۰۲/۱۶

vip
خیلی ممنونم از شما خیلی عالی شد میشه مثل تبلیغ بلاگفا باشه یعنی زیر صفحه نمایش داده بشه و صفحه رو سیاه نکنه که تا...
۱۴۰۳/۰۲/۰۵

vip
با سلام و خسته نباشید استاد چند وقت پیش این کد رو از شما گرفتم این کد خیلی خوبه و کاربر رو هم...
۱۴۰۳/۰۲/۰۴

پـــرتو
سلام خسته نباشید شرمنده مزاحم میشم یه سوال داشتم می خواستم بپرسم که چرا بلاگفا باز نمیشه برام؟ کلا هر وبلاگی که مربوط به بلاگفا...
۱۴۰۳/۰۲/۰۲

هادی عبداله زاده
با تشکر از شما دوست عزیز با order_id درستش کردم موقع برگشت order_id رو بر می گردونه اینطوری کردم که از طریق اون شناسه...
۱۴۰۳/۰۱/۲۲

هادی عبداله زاده
با تشکر از شما برای ارسال درخواست درست بود و به بانک هم وصل شد فقط برای وریفای چیکارش کنم؟
۱۴۰۳/۰۱/۲۲

هادی عبداله زاده
با سلام و خسته نباشید سال نو شما مبارک من یه کد واسه انتقال به درگاه دارم واسه زرین پال هست ...
۱۴۰۳/۰۱/۲۰

پـــرتو
ببخشید ممنون از جوابتون ولی یه سوال اگر بخوام همون شماره رو با حساب کاربری جدید با همون شماره رو داشته باشم داده های قبلی...
۱۴۰۳/۰۱/۱۹

حسین بلاگ
من یه صفحه ارسال متن دارم میخوام کاربرها وقتی واسه م پیام میدن وقتی روی اون دکمه کلیک می کنن بهشون بگه لطفا صبر...
۱۴۰۳/۰۱/۱۹

شریفی
سلام و عرض احترام سال نو رو بهتون تبریک میگم انشالله سال خوبی داشته باشین یه سرویس وبلاگدهی داریم که قصد داریم به...
۱۴۰۳/۰۱/۱۵

فرهادی
سلام ببخشید یه مشکل دارم این صفحه رو نگاه کنید چند بار توی سورس تکرار شده نمی تونم الگوی توضیحاتش رو استخراج...
۱۴۰۳/۰۱/۱۰

فرهادی
با تشکر از شما یه مشکل دیگه برام پیش اومده واسه این کد وقتی echo می گیرم تومان باهاش میاد وقتی میخوام فقط...
۱۴۰۳/۰۱/۰۹

سید صالح
با سلام و خسته نباشید من یک فرم ساده دارم که کاربر باید پر کنه چون سوال امنیتی و اینا نداره ربات ها همه...
۱۴۰۳/۰۱/۰۷

فرهادی
با تشکر از شما یه سوال دیگه هم دارم توی تعدادی از سایتهای فروشگاهی صفحات سایت مپ به جای لینک صفحات حاوی لینکهایی هستند...
۱۴۰۳/۰۱/۰۶
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا ۲۴ ساعت زمان ببرد.