💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ emad ta
خلاصه فصل مفاهیم پایه و پروتکل‌های وب جهت مرور سریع تر
جامعه پی اچ پی ایجاد شده در ۱۸ دی ۱۳۹۹

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

 

مثل پروتکل FTP که مجموعه قوانین انتقال فایل در شبکه رو میاد و مشخص میکند 

مثل IP که هسـتش Internet Protocol

 

 

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

 

node : به هریک از دستگاه هایی که در داخل شبکه به یک دیگر متصل هستند یک نود یا گره می‌گویند و بین تمامی این نود‌ها می‌تواند یک سری ارتباطاتی وجود داشته باشد که به اون‌ها connection می‌گویند 

این ارتباطات می‌تواند به صورت وایرلس و یا به صورت کابلی باشد 

 

توپولوژی شبکه : به تکنیک‌ها و روش‌های اتصال نود‌های شبکه به یکدیگر می‌گویند که معروف ترین‌ها شون 

 

line که به صورت خطی به هم متصل هستند و اگر یک جا بیاد و ارتباط قطع شود شبکه به دو بخش تقسیم می‌شود و دسترسی قطع می‌شود .

 

tree به صورت ساختار درختی هستش .

 

Bus یک لاین مشترک دارد که همه ی اجزای شبکه با اون لاین مشترک ارتباط دارند .

 

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

 

Start یک نود در وسط هستش و بقیه نود‌ها در اصل میان و به اون وصل می‌شوند وتمام ارتباطات از نود وسطی عبور میکند  .

 

Mesh هر نود حداقل ارتباط با یک نود دیگر دارد که بسیار شبیه به اینترنت هستش  .

 

Ring در یک رینگ قرار دارند و نود‌ها در آن قرار دارند و ارتباط هاشون رو برقرار میکنند .

 

 

مدل و معماری وب   ( معماری client server ) 

 

به این صورت هست که همیشه یک درخواستی از سمت کلاینت به سرور صورت میگیرد و سرور هم یک پاسخ ای رو به ما می‌دهد یکی از ضعف‌های معماری Single Point Of failure همستش که یعنی یک نقطه ی شکست رو همیشه دارد که مرکزیت سیستم هستش که اگر سرور خاموش بشه یا ارتباط با اون قطع شه تمام سیستم‌ها  ارتباط اشون رو با سرور از دست می‌دهند که به این جور سیستم‌ها سیتم‌های Centralized میگویند که یک جور مرکزیت دارند 

 

نکته : به غیر از معماری کلاینت سروری یک معماری دیگه هم داریم با نام peer to peer  که بیشتر پیرامون ارزهای دیجیتال و بلاک چین و  این‌ها استفاده می‌شود این جور سیستم‌ها تشکیل شده اند از یک سری peer‌ها یا نود هایی که با هم دیگه در ارتباط هستند و نود مرکزی ندارد و همه چی با رای گیری انجام می‌شود ولی سرعت سیستم ی خورده پایین هستش چون باید به تمام نو‌ها درخواست هاشو بفرسته 

 

پاسخ‌های سرور به کلاینت به صورت ارسال فایل‌های   js و html و  css  هستش 

 

نکته : بزرگ‌ترین و پر استفاده‌ترین کلاینت‌های وب مرورگر‌های ما هستند که وظایف اون‌ها ارسال درخواست‌های وب و رندر کردن صفحات وب و اجرا کننده کد‌های css و  html و js  مرورگر‌ها برای رندر صفحات از موتور‌های رندرینگ استفاده میکنند

 

معرفی تب‌های  inspector 

 

1- Element  که کد‌های مربوط به اون صفحه رو می‌بینیم کد‌های HTML Css

2- console کد‌های مربوط به جاوااسکریپت امون رو می‌توانیم در این جا مشاهد کنیم

3- source  تمام منابع که باز کردن اون صفحه وب داریم رو در این تب به ما نمایش میدهد

4- Network تعداد request‌های ارسال شده رو به ما نمایش میدهد 

5- Performance یکسری امکانات دارد که به ما این اجازه می‌دهد که بیایم و میزان پرفورمنس وب سایت امون رو بررسی کنیم

6- Memory میزان حافظه مصرف شده

7- Application امکانات  اپ

8- Security مسائل امنیتی

9- Audits عملکرد کلی وب سایت مثل سئو  پرفورمنس و .. میاد و مانیتور میکند و  مشکلات وب سایت رو به ما یک گزارش میدهد و تب مناسبی برای بالا بردن عملکرد سایت هستش

 

وب سرور  سرور

 

وب سرور در واقع یک نرم افزار هستش که روی سرور  سخت افزاری نصب می‌شود و وطیفه اصلی اون ذخیره سازی و پردازش و پاسخ دادن به درخواست‌های کلاینت هاست 

 

سیستم  عامل سرور‌های موجود :  ویندوز  و  لینوکس

وب سرور‌های موجود   Nginx   Apache    lls  و .. 

 

پیدا کردن یک سرور توسط کلاینت  : 

 

1-  کاربر وقتی هر اسمی رو میاد و در داخل اینترنت وارد می‌کند یک پروتکلی به نام DNS یا همان دفترچه تلفن اینترنت میاد و اجرا می‌شود و اسم سایت و آیپی در آن ذخیره هستش رو به ما نشان میدهد 

 

2-  IP میاد با استفاده از مسیر یابی مکان اون سرور و کاربر رو به ما میدهد 

 

3-  حال در داخل سرور ما نرم افزار‌های مختلفی نصب هستش مقل  nginx cpanel  fttp  mysql  و ..  هر سرور داخل خودش بالغ بر 6000 درگاه یا پورت دارد و هر نرم افزار به یکی از پورت‌ها وصل هستش  برای مثال  nginx به پورت 80443 وصل هستش و mysql   به پورت 3306 و cpanel   به پورت 2083 و  fttp   به پورت 21 وصل هستش

 

نکته :  پورت پیش فرض مرورگر هامون  80 یا 443  هستش برای باز کردن مرورگر‌ها که 80 برای http هستش و 443 برای ssL هستش که امن تره و نزاریم هم مشکلی نداره برای مثال برای خود سایت سون لرن می‌تونیم این کار رو انجام بدهیم

 

نکته : ما باید بیایم و این پورت‌های پیش فرض رو برداریم که دسترسی آزاد نداشته باشن 

 

 

لایه‌های شبکه : ساختار کار شبکه‌های کامپیوتری بر اساس مدل  OSI ریخته شده است که 7 لایه هست  که در لایه‌های بالایی در سطح نرم افزار رو داریم و در لایه‌های پایینی سطح سخت افزار بیشتر داریم و کل شبکه با این کدل کار میکند

 

 

client side جهت از بالا به پایین  و در سرور از پایین به بالا 

 

Host Layer 

7- Application Layer که به صورت جی سون میفرسته پروتکل‌های  HTTP  و  FTP  و  SSH  و  DNS

6- Presentation Layer سینتکس لایه SSL  و  SSH  و  JPEG  و IMAP 

5- session Layer 

 

قلب OSI

 

4- Transport Layer  پروتکل‌های مربوط به انتقال مثل TCP و UDP در اینجا قرار دارند

 

media Layers ساختار‌های سخت افزاری در شبکه هستند 

 

3- NETWORK Layer 

2- DATA-LINK Layer 

1- PHYSICAL Layer 

 

حال فقط ما در مدل  TCP/IP  کلن 4 تا لایه داریم 

 

1-Application

2-Transport 

3-NETWORK

4-NETWORK Interface

 

دریک معماری کلاینتی ما کدهامون در ابتدا در داخل لایه ی Application تبدیل به جی سون می‌شود و بعد در مرحله پایین‌تر لایه  Transport  شکسته میشه و تبدیل به یک سری سگمنت می‌شه و بعد باز در مرحله پایین‌تر  NETWORK  تبدیل به یک سری پکت هایی میشه و باز در مرحله پایین‌تر DATA-LINK تبدیل به صفر و یک میشه و در نهایت فایل‌های ما ارسال می‌شه به سمت سرور  حال در سمت سرور هم این مراحل از عکس شروع میشن به اجرا تا در انتها تبدیل به فایل جی سون امون بشه و سرورمون اون رو استفاده میکنه و این سری اتفاقات در درخواست‌ها و پاسخ‌ها به سرور انجام می‌شود

 

IP هر دستگاه متصل به اینترنت یک آدرس منحصر به فرد داره که بهش میگن آی پی ما کلن 2 نوع آیپی داریم   IP4   IP6 که  اولی 128 بیت و دومی 32 بیت هستش همچنین ما آیپی‌ها مون رو از ISP‌ها میایم و میگیریم 

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

 

 

آیپی‌های لوپ پک که هر جا استفاده بکنیم بر میگردد به خود سیستم امون Loopback Adress : 127.x.x.x  مثل استفاده از وب سرور‌های محلی که برای شبیه سازی کردن میایم و استفاده میکنیم 

 

 

برای پیدا کردن آیپی خودمون می‌تونیم از یکسری وب سایت‌ها استفاده بکنیم  

 

ما در داخل هر وب سایت حالا هر عملی که انجام بدهیم مثل لاگین و خرید و .. این‌ها آیپی ما رو در دسترس خودشون دارند و در جاهای مختلفی ذخیره میکنند و با استفاده از این آیپی و استفاده از ISP‌ها می‌تونند ما رو پیدا کنند 

 

 

ما با استفاده از دستور زیر در کامنت ویندوز می‌تونیم بیایم و ایپی مونو پیدا کنیم ipconfig 

 

AJAX : قبل از این که تکنولوژی مثل Ajax به وجود بیاد هر درخواستی که در صفحه مرورگر اجرا می‌کردیم باعث می‌شد که صفحه ما یک بار بیاد و Refresh بشه یه طور کلی با از Ajax  استفاده میکنیم به این دلیل که میخاهیم یک بخش خاصی از صفحه بدون این که کل صفحه بیاد و Refresh  بشه محتوا یا content اون بیاد و تغیر کند 

 

پرونکل FTP  :  پروتکلی برای انتقال فایل بین سرور و کلاینت ( این پروتکل هم مدل client - Server داره ) که ما درآن یک FTP Client داریم و یک FTP Server در داخل این پروتکل ما معمولا دو تا پورت 20 و 21 داریم و برای کلاینت امون یک control Channel داریم و برای  سرور امون یک Data Channel داریم FileZilla یکی از معروف‌ترین کلاینت‌های FTP  هستش که در داخل اون می‌توانیم بیایم و چند تا کانکشن رو بسازیم که یکی از پیش نیازهاشون هاست هستش یا آیپی سرور مون و پورت که اگه نزاریم همان پیش فرض 20 و 21 هستش و یک user  Password می‌خوان در هاست‌های اشتراکی  یا سرور‌های مجازی می‌توانیم اکانت‌های FTP بسازیم که بهمون یک سری user Password می دهند یکی از دم دست‌ترین FTP‌های ما فایل اکسپولر خود ویندوز هستش که برای استفاده از آن کافی است فقط بیایم و خط آدرس دهی تایپ کنیم @FTP و بعد آدرس سرومون که در اون جا از ما یوزر و پس ورد را می‌خواهد اکثر سایت‌های دانلودی معمولا از FTP استفاده میکنند

 

 

( Cross-Origin Resource Sharing ( CORS یک سری سیاست هایی هستش که اون سرورمون میاد و تعین میکند که چه چیز هایی بپزید و بتونه مسائل امنیتی رو کنترل کرد 

 

 

DNS : دفترچه تلفن اینترنت :  یک سیستم توزیع شده که IP متناظر با هر دومین رو به شما میدهد

 

مراحل کار در DNS 

 

1- با نوشتن نام یک سایت یا دومین آن DNS Resolver‌ها میان و فعال می‌شوند و این کار به اون‌ها میسپاره

 

2-  در مرحله دوم Root Server‌ها هستند که در داخل خودشون یک ساختار درختی دارند که می‌گویند هر دامنه در داخل خودشون به کدوم آیپی میان و وصل می‌شوند ( در این ساختار درختی در مرحله اول پس زمینه‌های دامنه وجود دارند مثل  .biz   .org  و ..  و هی سطوح پایین‌تر میاد ’)

 

نکته : معمولا وب سایت هایی که کار با حجم‌های فایلی زیادی دارند و کارای آپلودی زیادی رو باید بیان و انجام بدهند

سرور دانلود و هاست دانلودشون از سرور اصلی شون جداست و میان و یک DNS رو ست میکنند و یک ریکودیستی رو ست میکنند باهاش  و مثلا می‌گویند download.7learn.com هاستش اونجاس آیپی اون هاست رو ست می‌کنن و و خود سایت اصلی هاست اش  جداست و روی آیپی مرکزی هستش و به این مدل عملا چن تا ریکورد و در خواست روی هر کدوم بیاد میره روی هاست‌های مختلف اشون 

 

در داخل Root Server  گفتیم یک سری فرآیند‌های ام وجود دارد برای مثال اول میاد و TLD Server‌ها رو چک میکند 

و هی زیشاخه ای میره و به آیپی اون دومین مورد نظر ما می‌رسد

 

 

اصطلاحات معروف 

DNS Lookup  :  Domain to IP       we have DNS Cache       Reverse DNS Lookup : IP to Domain 

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

 

نکته : درخواست Ping یعنی برای جواب دادن از سرور ping -t همین جوری هی جواب می‌دهد 

معرفی سایت host-tracker.com

 

emad ta ۱۹ دی ۱۳۹۹، ۲۰:۵۰

پروتکل HTTP پروتکل انتقال ابرمتن  HYPERTEXT TRANSFER PROTOCOL : پروتکلی که قوانین و استاندارد‌های انتقال اطلاعات و محتوا تحت وب رو مشخص میکنه که در آن از سمت کلاینت همیشه یک HTTP Request رو میفرستیمو از سمت سرور هم همیشه یک HTTP Response هم میگیریم

 

کد‌های وضعیت یا HTTP Status Codes

1XX اطلاعاتی

2XX موفقیت آمیز بود

3XX دیدایرکت کردن

4XX مشکلاتی که مربوط به کلاینت هست مثلا آدرس رو اشتباه وارد کرده باشه 

5XX ارور‌ها و خطاهای سرور هستش                             
                                  

ما اطلاعات امون رو به دو صوتر یا فرمت‌های get یا post میتونیم بیایم و ارسالشون بکنیم زمانی که ما میایم و از get استفاده میکنیم این اطلاعات میاد و به ته url ما می‌چسبد یک روشش ارسال به صورت کوری پارامتر هستش که ارسال می‌شود زمانی که اطلاعات ما حساس هستش برای ارسال نباید از متد get بیایم و استفاده بکنیم 

https://7learn.ac/?name=emad&age=23

پروتکل Https  میگوید که تمامی اطلاعات ما که از این سایت بیرون میاد و داخل شبکه میشه این‌ها همش رمز نگاری شده است و کسی نمی‌تواند اون هارو نگاه کند و پروتکل http رمز نگاری ندارند

که کلن تفاوت این دو در این هست که https میاد و در مرحله پایین‌تر http  بااستفاده از پروتکل‌های رمز نگاری ssl و TLS کدهای مارو تا حدودی رمز نگاری میکند و بعد وارد مراحل TCP و Ip می‌شود

 

 

پروتکل‌های http  وابستگی به نوع محتوا ندارند و هر نوع محتوایی می‌تونن بیان و انتقال بدهند همچنین به اضای هر ارسال یا درخواستشون یک کانکشن میاد و درست میکند و بعد اتمام کار این کانکشن تموم می‌شود همچنین قابلیت کچ کردن هم دارند برای سرعت بیشتر همچنین ارسال درخواست هامون  قبل از ارسالشون درخواست‌های ما میان و انکود می‌شوند و تبدیل می‌شوند به کاراکتر‌های اسکی 

 

 

سوکت : یک کانال ارتباطی یا کانکشن پایدار بین دو نود در شبکه است این کانال در حین ارتباط بین دو نود برقرار می‌ماند اطلاعات این کانکشن می‌تونه سمت نود‌ها نگهداری شه

 

ما در پروتکل‌های http   تعداد و حجم کانکشن هامون زیاد هستش و به تعداد درخواست هایی که داریم  باید بیایم و از کانکشن‌ها استفاده بکنیم ولی در سوکت‌ها میان و یک لاین ارتباطی  ثابت و پایدار می‌سازند و با اون درخواست‌ها و ارتباط‌های خودشون رو تبادل میکنند و بعد از این که کارشون تموم شد این کانکشن رو می‌بندند ما در http   کانکشن‌ها مون stateless هستش یعنی اصطلاحا هیچ گونه اطلاعاتی پیرامون کانکشن هاشون ذخیره نمی‌کنند ولی در سوکت هامون اصطلاحا statefull هستش و یک سری اطلاعات رو پیرامون کانکشن‌ها میاد و ذخیره میکند همچنین در http   لاین‌های ارتباطی ما اصطلاحا یک طرفه هستش یا uni-directional هستش ولی در سوکت‌ها چن طرفه یا bi-directional هستش وب سوکت یک پروتکل ارتباطی است که می‌تواند یک ارتباط Duplex-Full را بین مرورگر وب و سرور برقرار نماید با استفاده از وب سوکت برخی از محدودیت‌های http برای برقراری ارتباط پایدار و latancy-low رفع شده است.

 

 

 

emad ta ۲۰ دی ۱۳۹۹، ۱۰:۳۴