<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های TornLab</title>
        <link>https://virgool.io/feed/@TornLab</link>
        <description>🔴خدمات ما :
طراحی وب سایت (فروشگاهی،آموزشی،خدماتی و...)
طراحی گرافیک (کارت ویزیت ، ست اداری،بنر،منو و...)
خدمات مکمل طراحی وب سایت (سئو کامل،ادمینی و پشتیبانی،بهینه سازی زیرساختی)</description>
        <language>fa</language>
        <pubDate>2026-06-17 01:27:32</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2213738/avatar/3EGhSE.jpg?height=120&amp;width=120</url>
            <title>TornLab</title>
            <link>https://virgool.io/@TornLab</link>
        </image>

                    <item>
                <title>کار با پایگاه داده MYSQL با پایتون</title>
                <link>https://virgool.io/@TornLab/%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-mysql-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-skeyhtriuhkq</link>
                <description>خب اول بگم که حتما پیشنیاز این مقاله بلد بودن زبان sql هست بعدا توی یک مقاله جدا درباره زبان sql حرف میزنیم پایگاه داده چیست ؟ پایگاه به انگیلیسی (Database) داده به معنای ساده‌تر یک مجموعه سازمان‌یافته از اطلاعات است که به صورت الکترونیکی در یک سیستم ذخیره و مدیریت می‌شود این اطلاعات می‌توانند شامل داده‌های مربوط به مشتریان، محصولات، سفارشات، تاریخچه فروش، فاکتورها و سایر اطلاعات مرتبط با فعالیت‌های یک سازمان یا سازمان‌ها باشند.مزیت‌های استفاده از پایگاه داده شامل موارد زیر می‌شود:سهولت در دسترسی به اطلاعات مورد نیاز و جستجوی سریعحفظ امنیت و حریم خصوصی داده‌هاامکان همزمانی در دسترسی به داده‌ها برای کاربران مختلفایجاد پشتیبان‌های از داده‌ها جهت جلوگیری از از دست رفتنانواع پایگاه داده : GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOracleSybaseخب شما باید برای شروع اول یک سرور مازی داشته باشید من خودم xampp پیشنهاد میکنم که امروز هم روی اون قرار کار کنیم خب بعد از نصبش حالا نرم افزار رو اجرا کنید و مانند تصویر زیر قسمت mysql و apache رو فعال کنید : و در مرور گر خود سرچ کنید :http://localhost/phpmyadmin/و تصویری مانند تصویر زیر میبینید :خب حالا سمت چپ تصویر پایگاه داده های خود را میبینید شما از همین محیط هم میتوانید کار های خود را در پایگاه داده انجام دهید اما اگه عاشق برنامه نویسی هستید و دوست دارید این کار ها رو با برنامه نویسی انجام دهید تا آخر این مقاله همراه من باشید شروع برنامه نویسی : نصب کتابخانه mysql.connector در پایتون : pip install mysql-connector-pythonنشان دادن پایگاه های داده : import mysql.connector
mydb = mysql.connector.connect(
host=&amp;quotlocalhost&amp;quot,
user=&amp;quotroot&amp;quot,
password=&amp;quot&amp;quot
)
mycursor = mydb.cursor()
mycursor.execute(&amp;quotSHOW DATABASES&amp;quot)
for x in mycursor :
print(x)نتایج کد : (&#039;gametorn&#039;,)
(&#039;information_schema&#039;,)
(&#039;mysql&#039;,)
(&#039;performance_schema&#039;,)
(&#039;phpmyadmin&#039;,)        
(&#039;test&#039;,)
(&#039;wp&#039;,)بررسی کد : خط کد اول اومدیم کتابخانه mysql.connector رو بارگیری کردیم خط کد دوم اومدیم یک متغیر به اسم mydb ساختیم و اطلاعات مثل نام میزبان که میشه localhost و نام کاربری که میشه root  و پسورد هم که نداریم  ریختیم توی متغیر و ممکنه برای شما فرق داشته باشه ولی اگه xampp رو تنظیماتش رو تغیر نداده باشید همینه خط کد سوم در این خط، ما یک شیء cursor (موقعیت نما) ایجاد می‌کنیم که برای اجرای دستورات SQL در پایگاه داده استفاده می‌شود.خط کد چهارم در این خط، ما کد sql رو به صورت رشته وارد کردیم که کد ما هست :  SHOW DATABASES. این کد لیستی از نام‌های پایگاه‌های داده موجود را برمی‌گرداند.کلا شما میتوانید در این خط کد هر کدی که مربوط به sql بشه رو بزنید خط کد پنجم یک حلقه for است که بر روی نتایج بازگشتی از کد SHOW DATABASES حرکت می‌کند. در هر مرحله، نام پایگاه داده را چاپ می‌کند.در نهایت این کد میاد همه پایگاه های داده رو نمایش میده اسماشون رو ساخت پایگاه داده جدید : import mysql.connector
mydb = mysql.connector.connect(
host=&amp;quotlocalhost&amp;quot,
user=&amp;quotroot&amp;quot,
password=&amp;quot&amp;quot
)
mycursor = mydb.cursor()
mycursor.execute(&amp;quotCREATE DATABASE AmirTorn&amp;quot)برای دیدن نتایج کد یا صفحه مرورگر خود که روی phpmyadmin هست رو رفرش کنید یا از نوع اون برنامه ای که اول نوشتیم رو اجرا کنید برنامه ای که اول نوشتیم :(&#039;amirtorn&#039;,)
(&#039;gametorn&#039;,)
(&#039;information_schema&#039;,)
(&#039;mysql&#039;,)
(&#039;performance_schema&#039;,)
(&#039;phpmyadmin&#039;,)        
(&#039;test&#039;,)
(&#039;wp&#039;,)صفحه phpmyadmin : در هردو آنها میبینید که یک قسمت به اسم amirtorn هست که همون پایگاه داده ای هست که ساختیم بررسی کد :خط کد اول اومدیم کتابخانه mysql.connector رو بارگیری کردیم خط کد دوم اومدیم یک متغیر به اسم mydb ساختیم و اطلاعات مثل نام میزبان که میشه localhost و نام کاربری که میشه root  و پسورد هم که نداریم  ریختیم توی متغیر و ممکنه برای شما فرق داشته باشه ولی اگه xampp رو تنظیماتش رو تغیر نداده باشید همینه خط کد سوم در این خط، ما یک شیء cursor (موقعیت نما) ایجاد می‌کنیم که برای اجرای دستورات SQL در پایگاه داده استفاده می‌شود.خط کد چهارم در این خط، ما کد sql رو به صورت رشته وارد کردیم که کد ما هست :  CREATE DATABASE AmirTorn. این کد یک پایگاه داده ایجاد میکنه به اسم AmirTorn که آخرش دادیم شما میتوانید هر چیزی که دوست داشتید بزنید .در نهایت این کد میاد یک پایگاه داده جدید درست میکنه به اسم AmirTorn ساخت جدول در پایگاه داده : import mysql.connector
mydb = mysql.connector.connect(
host=&amp;quotlocalhost&amp;quot,
user=&amp;quotroot&amp;quot,
password=&amp;quot&amp;quot,
database=&amp;quotamirtorn&amp;quot
)
mycursor = mydb.cursor()
mycursor.execute(&amp;quotCREATE TABLE test (name VARCHAR(255), address VARCHAR(255))&amp;quot)برای دیدن نتایج کد صفحه مرورگر خود که روی phpmyadmin هست رو رفرش کنید و روی پایگاه داده ای که کد بالا رو روش اجرا کردید کلیک کنید :خب اینجا میبیند یک جدول به اسم test ساخته شده و وقتی روش کلیک کنید میبینید که دوتا ستون هست به اسم name,address داره که مقادی تا 255 کاراکتر رو درخودش جا میدهبررسی کد : خط کد اول اومدیم کتابخانه mysql.connector رو بارگیری کردیم خط کد دوم اومدیم یک متغیر به اسم mydb ساختیم و اطلاعات مثل نام میزبان که میشه localhost و نام کاربری که میشه root  و پسورد هم که نداریم  و نام پایگاه داده مورد نظر رو ریختیم توی متغیر و ممکنه برای شما فرق داشته باشه ولی اگه xampp رو تنظیماتش رو تغیر نداده باشید همینه و اسم پایگاه داده ولی بستگی داره که توی ساختش چه اسمی انتخاب کردین خط کد سوم در این خط، ما یک شیء cursor (موقعیت نما) ایجاد می‌کنیم که برای اجرای دستورات SQL در پایگاه داده استفاده می‌شود.خط کد چهارم در این خط، ما کد sql رو به صورت رشته وارد کردیم که کد ما هست :  CREATE TABLE test (name VARCHAR(255), address VARCHAR(255)). این کد یک جدول جدید با نام &quot;test&quot; در پایگاه داده ایجاد میکنه که جدول شامل دو ستون است: &quot;name&quot; که یک رشته با حداکثر طول 255 کاراکتر و &quot;address&quot; که نیز یک رشته با حداکثر طول 255 کاراکتر است. در نهایت این خط کد میاد یک جدول جدید به نام &quot;test&quot; و ستون های مورد نظر خود در پایگاه داده &quot;amirtorn&quot; خود ایجاد خواهید کرد.ریختن مقادیر داخل ستون های جدول : کد :import mysql.connector
mydb = mysql.connector.connect(
host=&amp;quotlocalhost&amp;quot,
user=&amp;quotroot&amp;quot,
password=&amp;quot&amp;quot,
database=&amp;quotamirtorn&amp;quot
)
mycursor = mydb.cursor()
sql = &amp;quotINSERT INTO test (name, address) VALUES (%s, %s)&amp;quot
val = (&amp;quotGame&amp;quot, &amp;quotTorn&amp;quot)
mycursor.execute(sql, val)
mydb.commit()برای دیدن نتایج کد صفحه مرورگر خود که روی phpmyadmin هست رو رفرش کنید و روی پایگاه داده ای که کد بالا رو روش اجرا کردید و جدول مورد نظر کلیک کنید :دیدین که توی قسمت name اومده Game و قسمت address هم اومده Torn که شما میتوانید هرچی دوست داشتید بزنید که داخل کد باید تغیر بدید بررسی کد :خط کد اول اومدیم کتابخانه mysql.connector رو بارگیری کردیم خط کد دوم اومدیم یک متغیر به اسم mydb ساختیم و اطلاعات مثل نام میزبان که میشه localhost و نام کاربری که میشه root  و پسورد هم که نداریم  و نام پایگاه داده مورد نظر رو ریختیم توی متغیر و ممکنه برای شما فرق داشته باشه ولی اگه xampp رو تنظیماتش رو تغیر نداده باشید همینه و اسم پایگاه داده ولی بستگی داره که توی ساختش چه اسمی انتخاب کردین خط کد سوم در این خط، ما یک شیء cursor (موقعیت نما) ایجاد می‌کنیم که برای اجرای دستورات SQL در پایگاه داده استفاده می‌شود.خط کد چهارم در این خط، ما یک متغیر به اسم sql داریم که کد sql رو به صورت رشته وارد کردیم که کد ما هست :  INSERT INTO test (name, address) VALUES (%s, %s). این کد برای اضافه کردن رکوردها به جدول استفاده می‌شود. در اینجا، ما مقادیر %s را به عنوان placeholders (جایگزین‌ها) استفاده کرده‌ایم و همشون رو در متغیر sql ذخیره میشه .خط کد پنجم در این خط، ما یک متغیر به نام val ایجاد می‌کنیم که شامل مقادیر ورودی برای رکورد جدید است. در اینجا، ما مقدار &quot;Game&quot; را به عنوان نام و &quot;Torn&quot; را به عنوان آدرس استفاده میکنیم و در متغیر val ذخیره میکنیم خط کد ششم میایم متغیر sql که کد sql بود و مقادیری که داخل متغیر val بود را که میخواهیم اضافه بشه به ستون ها را فراخانی میکنیم و در خط هفتم تمامی تغییرات اعمال شده را در پایگاه داده ثبت می‌کنیم. با فراخوانی commit()، تمام تغییرات انجام شده در پایگاه داده ذخیره می‌شوند.در نهایت با اجرای این کد، شما یک رکورد جدید با نام &quot;Game&quot; و آدرس &quot;Torn&quot; را در جدول &quot;test&quot; پایگاه داده &quot;amirtorn&quot; خود اضافه خواهید کرد.حذف کردن مقادیر از ستون ها : کد : mydb = mysql.connector.connect(
host=&amp;quotlocalhost&amp;quot,
user=&amp;quotroot&amp;quot,
password=&amp;quot&amp;quot,
database=&amp;quotamirtorn&amp;quot
)
mycursor = mydb.cursor()
sql = &amp;quotDELETE FROM test&amp;quot
mycursor.execute(sql)
mydb.commit()برای دیدن نتایج کد صفحه مرورگر خود که روی phpmyadmin هست رو رفرش کنید و روی پایگاه داده ای که کد بالا رو روش اجرا کردید و جدول مورد نظر کلیک کنید :میبینید که ستون ها خالی شده چون همشون رو حذف کردیم بررسی کد : خط کد اول اومدیم کتابخانه mysql.connector رو بارگیری کردیم خط کد دوم اومدیم یک متغیر به اسم mydb ساختیم و اطلاعات مثل نام میزبان که میشه localhost و نام کاربری که میشه root  و پسورد هم که نداریم  و نام پایگاه داده مورد نظر رو ریختیم توی متغیر و ممکنه برای شما فرق داشته باشه ولی اگه xampp رو تنظیماتش رو تغیر نداده باشید همینه و اسم پایگاه داده ولی بستگی داره که توی ساختش چه اسمی انتخاب کردین خط کد سوم در این خط، ما یک شیء cursor (موقعیت نما) ایجاد می‌کنیم که برای اجرای دستورات SQL در پایگاه داده استفاده می‌شود.خط کد چهارم در این خط، ما یک متغیر به اسم sql داریم که کد sql رو به صورت رشته وارد کردیم که کد ما هست :  DELETE FROM test. این کد برای حذف کردن مقادیر داخل جدول مورد نظر هست خط کد پنجم میایم متغیر sql که کد sql بود را فراخانی میکنیم برنامه نویسی×پایگاه داده×mysql×python×و در خط هفتم تمامی تغییرات اعمال شده را در پایگاه داده ثبت می‌کنیم. با فراخوانی commit()، تمام تغییرات انجام شده در پایگاه داده ذخیره می‌شوند.حذف کردن جدول : import mysql.connector
mydb = mysql.connector.connect(
host=&amp;quotlocalhost&amp;quot,
user=&amp;quotroot&amp;quot,
password=&amp;quot&amp;quot,
database=&amp;quotamirtorn&amp;quot
)
mycursor = mydb.cursor()
sql = &amp;quotDROP TABLE test&amp;quot
mycursor.execute(sql)برای دیدن نتایج کد صفحه مرورگر خود که روی phpmyadmin هست رو رفرش کنید روی پایگاه داده ای که کد بالا رو روش اجرا کردید کلیک کنید :میبینید که هیچ جدول دیگه وجود نداره بررسی کد : خط کد اول اومدیم کتابخانه mysql.connector رو بارگیری کردیم خط کد دوم اومدیم یک متغیر به اسم mydb ساختیم و اطلاعات مثل نام میزبان که میشه localhost و نام کاربری که میشه root  و پسورد هم که نداریم  و نام پایگاه داده مورد نظر رو ریختیم توی متغیر و ممکنه برای شما فرق داشته باشه ولی اگه xampp رو تنظیماتش رو تغیر نداده باشید همینه و اسم پایگاه داده ولی بستگی داره که توی ساختش چه اسمی انتخاب کردین خط کد سوم در این خط، ما یک شیء cursor (موقعیت نما) ایجاد می‌کنیم که برای اجرای دستورات SQL در پایگاه داده استفاده می‌شود.خط کد چهارم در این خط، ما یک متغیر به اسم sql داریم که کد sql رو به صورت رشته وارد کردیم که کد ما هست :  DROP TABLE test. این کد برای حذف کردن جدول مورد نظر هست خط کد پنجم میایم متغیر sql که کد sql بود را فراخانی میکنیم خب رفقا کرای دیگه هم میشه کرد که همشون رو داخل ویدیو های مختلف داخل چنل یوتیوبم میزارم به زودی لینک چنل یوتیوبم رو میزارم مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوباینستاگرامتلگرامساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهآشنایی با مدل TCP/IP , ساخت سرور و کلاینت ساده با پایتون , چند تا درخواست ساده HTTP با پایتون</description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Fri, 16 Jun 2023 16:59:27 +0330</pubDate>
            </item>
                    <item>
                <title>چند تا درخواست ساده HTTP با پایتون</title>
                <link>https://virgool.io/@TornLab/%DA%86%D9%86%D8%AF-%D8%AA%D8%A7-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%D8%B3%D8%A7%D8%AF%D9%87-http-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-jg1zevfjkkkv</link>
                <description>خب امروز میخواهیم با استفاده از کتابخانه requests درخواست های HTTP مختلف رو تست کنیم , هدف از ساخت کتابخانه‌ requests در پایتون، ایجاد استانداردهایی برای ارسال و دریافت درخواست‌های مبتنی بر HTTP است در این کتابخانه می‌توان به کمک APIهای نوشته شده برای برنامه درخواست های مختلف HTTP رو زد.رفقا شما میتوانید با کتابخانه های دیگه ای هم بزنید ولی ما امروز میخواهیم با کتابخانه requests کار کنیم پروتکل HTTP چیست ؟ شروع کار با requests : کار را با نصب کتابخانه‌ Requests پایتون شروع می‌کنیم. دستور زیر را در محیط ترمینال اجرا کنید:pip install requestsمتد GET Request : متد POSTاز متدهای پرکاربرد و رایج در درخواست‌های مبتنی بر وب است. این متد بیانگر این است که شما سعی در به دست آوردن یا بازیابی اطلاعات از منبع مشخصی از داده‌ها دارید. برای ایجاد GET Request از متد ()requests.get استفاده می‌کنیم. برای تست این دستور یک درخواست مبتنی بر GET برای صفحه‌ی آپارات خودم ایجاد می‌کنیم:import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.get(url)
print(request)Response : &lt;Response [200]&gt;خب خب شما در این جا میبیند کد وضعیت 200 شده کد وضعیت 200 چی بود‌ ؟؟؟ یعنی درخواست با موفقیت اجرا شده بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد get بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیممتد POST Request (Status Codes) : اطلاعات به دست آمده از پاسخ، حاوی اطلاعاتی در مورد status code یا کد وضعیت است. کد وضعیت شما را از وضعیت ریکوئست باخبر می‌کند. برای مثال وضعیت 200 OK به این معناست که ریکوئست شما با موفقیت پاسخ داده شده است. کد 404 NOT FOUND بیانگر این است که منابع مورد جستجوی شما پیدا نشده‌ است. status codeهای بسیاری وجود دارند که می‌توانند نشان دهند درخواست شما چگونه پاسخی را دریافت کرده و در چه وضعیتی قرار داردکد های وضعیت پروتکل اچ تی تی پیimport requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.get(url)
print(request.status_code)Response : 200بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد get بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم کد وضعیت رو چاپ کن محتوا یا Content : پاسخ دریافتی برای یک درخواست از نوع GET شامل اطلاعاتی ارزشمند است. با استفاده از متدها و صفات تعریف شده برای Response می‌توانید payloadها را در گستره‌ی وسیعی از فرمت‌ها ببینید برای دیدن محتوای پاسخ (response content) از content. استفاده می‌کنیم : import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.get(url)
print(request.content)Response : در پاسخ شما payload های اون وب سایت رو میبیند و انقدر زیاد بودن که نشد اینجا بزارم بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد get بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط محتوا رو چاپ کن هدر ها Header : قسمت هدر ها اطلاعات زیادی در مورد نوع داده‌ی موجود در قسمت payload پاسخ و محدودیت زمانی برای مدت cashe کردن پاسخ را به شما ارائه می‌دهد. برای این منظور از تابع header. استفاده می‌کنیم:import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.get(url)
print(request.headers)Response : {&#039;date&#039;: &#039;Tue, 13 Jun 2023 07:12:01 GMT&#039;, &#039;content-type&#039;: &#039;text/html&#039;, &#039;transfer-encoding&#039;: &#039;chunked&#039;, &#039;vary&#039;: &#039;Accept-Encoding&#039;, &#039;last-modified&#039;: &#039;Mon, 12 Jun 2023 22:56:00 GMT&#039;, &#039;etag&#039;: &#039;W/&amp;quot6487a280-7665&amp;quot&#039;, &#039;cache-control&#039;: &#039;no-cache&#039;, &#039;x-frame-options&#039;: &#039;SAMEORIGIN&#039;, &#039;x-content-type-options&#039;: &#039;nosniff&#039;, &#039;x-xss-protection&#039;: &#039;1; mode=block&#039;, &#039;referrer-policy&#039;: &#039;strict-origin-when-cross-origin&#039;, &#039;server&#039;: &#039;nginx&#039;, &#039;x-upstream-ct&#039;: &#039;0.000&#039;, &#039;x-upstream-ht&#039;: &#039;0.271&#039;, &#039;x-cache&#039;: &#039;O-BYPASS&#039;, &#039;x-upstream&#039;: &#039;0&#039;, &#039;content-encoding&#039;: &#039;gzip&#039;} بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد get بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط هدر ها رو چاپ کن در خواست به یک هدر خواص : میخواهیم فقط به یک هدر درخواست بزنیم و محتوای داخلش رو ببینیم به عنوان مثال هدر ()content-type : import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.get(url)
print(request.headers[&amp;quotcontent-type&amp;quot])Response : text/htmlبررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد get بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط هدر content-type رو چاپ کن دریافت اطلاعات کلی : ما اینجا فقط میخواهیم اطلاعات وب سایت رو ببینیم به صورت کلی : import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.get(url)
print(request.text)Response : این جا شما یه اطلاعات کلی از لینک مورد نظر میبینید که انقدر زیاد بود که نتوانست اینجا بزارمبررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد post بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط محتوای text رو چاپ کنمتد POST Request :از متد POST برای ارسال اطلاعات از فرم ها و صفحات html به سمت سرور استفاده می شود. معمولا وقتی شما قصد دارید اطلاعات را به سمت سرور ارسال کنید و در آنجا ذخیره کنید از این متد استفاده می شود. یک درخواست POST در کش مرورگر ذخیره نمی شودimport requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.post(url)
print(request)Response : &lt;Response [200]&gt;خب خب شما در این جا میبیند کد وضعیت 200 شده کد وضعیت 200 چی بود‌ ؟؟؟ یعنی درخواست با موفقیت اجرا شده بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد post بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیممتد POST Request (Status Codes) : اطلاعات به دست آمده از پاسخ، حاوی اطلاعاتی در مورد status code یا کد وضعیت است. کد وضعیت شما را از وضعیت ریکوئست باخبر می‌کند. برای مثال وضعیت 200 OK به این معناست که ریکوئست شما با موفقیت پاسخ داده شده است. کد 404 NOT FOUND بیانگر این است که منابع مورد جستجوی شما پیدا نشده‌ است. status codeهای بسیاری وجود دارند که می‌توانند نشان دهند درخواست شما چگونه پاسخی را دریافت کرده و در چه وضعیتی قرار داردکد های وضعیت پروتکل اچ تی تی پیimport requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.post(url)
print(request.status_code)Response : 200بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد post بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم کد وضعیت رو چاپ کن محتوا یا Content : پاسخ دریافتی برای یک درخواست از نوع GET شامل اطلاعاتی ارزشمند است. با استفاده از متدها و صفات تعریف شده برای Response می‌توانید payloadها را در گستره‌ی وسیعی از فرمت‌ها ببینید برای دیدن محتوای پاسخ (response content) از content. استفاده می‌کنیم : import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.post(url)
print(request.content)Response : در پاسخ شما payload های اون وب سایت رو میبیند و انقدر زیاد بودن که نشد اینجا بزارم بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد post بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط محتوا رو چاپ کن هدر ها Header : قسمت هدر ها اطلاعات زیادی در مورد نوع داده‌ی موجود در قسمت payload پاسخ و محدودیت زمانی برای مدت cashe کردن پاسخ را به شما ارائه می‌دهد. برای این منظور از تابع header. استفاده می‌کنیم:import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.post(url)
print(request.headers)Response : {&#039;date&#039;: &#039;Tue, 13 Jun 2023 07:12:01 GMT&#039;, &#039;content-type&#039;: &#039;text/html&#039;, &#039;transfer-encoding&#039;: &#039;chunked&#039;, &#039;vary&#039;: &#039;Accept-Encoding&#039;, &#039;last-modified&#039;: &#039;Mon, 12 Jun 2023 22:56:00 GMT&#039;, &#039;etag&#039;: &#039;W/&amp;quot6487a280-7665&amp;quot&#039;, &#039;cache-control&#039;: &#039;no-cache&#039;, &#039;x-frame-options&#039;: &#039;SAMEORIGIN&#039;, &#039;x-content-type-options&#039;: &#039;nosniff&#039;, &#039;x-xss-protection&#039;: &#039;1; mode=block&#039;, &#039;referrer-policy&#039;: &#039;strict-origin-when-cross-origin&#039;, &#039;server&#039;: &#039;nginx&#039;, &#039;x-upstream-ct&#039;: &#039;0.000&#039;, &#039;x-upstream-ht&#039;: &#039;0.271&#039;, &#039;x-cache&#039;: &#039;O-BYPASS&#039;, &#039;x-upstream&#039;: &#039;0&#039;, &#039;content-encoding&#039;: &#039;gzip&#039;} بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد post بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط هدر ها رو چاپ کن در خواست به یک هدر خواص : میخواهیم فقط به یک هدر درخواست بزنیم و محتوای داخلش رو ببینیم به عنوان مثال هدر ()content-type : import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.post(url)
print(request.headers[&amp;quotcontent-type&amp;quot])Response : text/htmlبررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد post بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط هدر content-type رو چاپ کن دریافت اطلاعات کلی : ما اینجا فقط میخواهیم اطلاعات وب سایت رو ببینیم به صورت کلی : import requests
url = &amp;quothttps://aparat.com/amir.Mr.gamir.com&amp;quot
request = requests.post(url)
print(request.text)Response : این جا شما یه اطلاعات کلی از لینک مورد نظر میبینید که انقدر زیاد بود که نتوانست اینجا بزارم بررسی کد : خط اول اومدیم کتابخانه requests رو بارگیری کردیم خط دوم اومدیم یک متغیر ساختیم توش آدرس سایت مورد نظر رو ریختیم خط سوم اومدیم یک متغیر ساختیم توش گفتیم یک درخواست با متد post بزن به متغیر خط دوم که میشه آدرس سایت ما ، و همه اینا رو ریختیم توی متغیر request خط چهارم اومدیم درخواست رو چاپ کردیم ولی بهش گفتیم فقط محتوای text رو چاپ کنتوجه کنید تمامی این متد ها باید بر اساس متدی که وب سایت پشتییبانی میکنه بزنید مثال اگه وب سایت فقط get پشتیبانی میکنه شما نمیتوانید post بزنید و از کجا بفهمیم یک وب سایت از چه متد هایی پشتیبانی میکنه ؟ با ما همراه باشید : توی وب سایت مورد نظر راست کلیک میکنید و گزینه Inspect میزنین و به قسمت Networks رفته و صفحه رو refresh کنید و بعد روی قسمت اول که داخل Networks میاره کلیک کنید و بعدش قسمت Request Method میتوانید ببنید اما فقط یکی مینویسه یا GET یا POST یا... که ممکنه از هر دو پشتیبانی کنه ولی خب اونی که اونجا مینویسه اصل کاری برای این که بفهمین از متد های دیگه پشتیبانی میکنه یا نه باید دیگه خودتون با متد ها مختلف که بالا گفتم هی تست کنید با برنامه نویسی یا با ابزار burp suite.مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوباینستاگرامتلگرامساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهآشنایی با مدل TCP/IP , آشنایی با مدل OSI , ساخت سرور و کلاینت ساده با پایتون</description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Tue, 13 Jun 2023 12:11:54 +0330</pubDate>
            </item>
                    <item>
                <title>ساخت سرور و کلاینت ساده با پایتون</title>
                <link>https://virgool.io/@TornLab/%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B3%D8%B1%D9%88%D8%B1-%D9%88-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA-%D8%B3%D8%A7%D8%AF%D9%87-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-xpneiqaxurhh</link>
                <description>بعد از مدت ها اومدیم ولی خیلی خفن اومدیم امروز میخواهیم یک سرور و کلاینت ساده در پایتون بسازیم که درست یک سرور و کلاینت وب سایت رو شبیه سازی میکنه ولی بسیار ساده هست که ما داریم Network Programming  یا Sockets Programming انجام میدیدم بعدا در یک مقاله جدا درباره پایتون حرف میزنیم Sockets Programming چیست ؟ socket یک کتابخانه در زبان برنامه نویسی پایتون هست برای برنامه نویسی سمت شبکه انجام داد یا ساده تر این که 2 تا دستگاه رو به هم وصل کنیم بعدا در یک مقاله جدا درباره کتابخانه socket حرف میزنیم Network Programming چیست ؟ یعنی برنامه نویسی سمت شبکه که یعنی برنامه ای بنویسیم که بتوانه یک شبکه ایجاد کنه یا همون مثال بالا که گفتم 2 تا دستگاه رو بهم وصل کنه مفاهیم اصلی شبکهکد برنامه :‌سرور : import sockets = socket.socket()host = socket.gethostname()port = 12345s.bind((host,port))s.listen(5)while True :c,add = s.accept()print(&amp;quotGot connection form&amp;quot,add)c.send(&amp;quotThank you for connecting&amp;quot.encode())c.close()در کد بالا ما اومدیم و سرور خود را نوشتیم که میاد پیام Thank you for connecting رو به کلاینت ارسال میکنه و داخل خودش پیام Got connection form چاپ میکنه به همراه آدرس IP کلاینت در خط کد اول اومدیم کتابخانه سوکت رو بارگیری کردیم در خط کد دوم اومدیم شعی سوکت رو از کتابخانه سوکت بارگیری کردیم و ریخیتیم داخل متغیر s در خط کد سوم اومدیم هاست خود را به عنوان سیستم محلی خودمون تعریف کردیم و در متغیر host ذخیره کردیم در خط کد چهارم اومدیم عداد 12345 رو به عنوان پورت خودمون در نظر گرفتیم و ریختیم داخل متغیر port در خط کد پنجم اومدیم هاست و پورت رو با اسنفاده از تابع bind() که داخل کتابخانه سوکت هست هاست و پورت رو به هم وصل کردیم در خط کد ششم یک اتصال TCP راه اندازی کردیم در خط کد هفتم یک حلقه بینهایت زدیم که به مسیر گوش کنه در خط هشتم اومدیم اتصال TCP رو به صورت غیرفعال پذیرفتیم و ریختیم داخل متغیر add و c (غیرفعال پذیرفتیم یعنی اگه کلاینت بهش وصل نبود کد به خطا نخوره و همینطوری 24 ساعته سرور فعال باشه)در خط نهم گفتیم که وقتی کلاینت وصل شد به سرور پیام Got connection form و آدرس آی پی کلاینت رو برامون داخل خود سرور چاپ کنه در خط دهم اومدیم گفتیم پیام Thank you for connecting رو به کلاینت ارسال کنه در خط یازدهم هم گفتیم برنامه بسته بشه کلاینت : import sockets = socket.socket()host = socket.gethostname()port = 12345s.connect((host,port))print(s.recv(1024))s.close()در خط کد اول اومدیم کتابخانه سوکت رو بارگیری کردیم در خط کد دوم اومدیم شعی سوکت رو از کتابخانه سوکت بارگیری کردیم و ریخیتیم داخل متغیر s در خط کد سوم اومدیم هاست خود را به عنوان سیستم محلی خودمون تعریف کردیم و در متغیر host ذخیره کردیم در خط کد چهارم اومدیم عداد 12345 رو به عنوان پورت خودمون در نظر گرفتیم و ریختیم داخل متغیر portدر خط پهجم گفتیم اتصال TCP برقرار کن به صورت فعال به هاست و پورتی که تعریف کردیم (به صورت فعال یعنی اگه سرور خاموش بود کد خطا بخوره)در خط ششم گفتیم که پیام TCP که از سرور دریافت کردیم رو چاپ کن داخل کلاینت در خط هفتم هم گفتیم که برنامه بسته شه خب حالا برای اجرای این برنامه ها باید این خط کد هارو داخل دو تا فایل مختلف پایتون بنویسید و هر دو فایل رو باه اجرا کنید برای این کار cmd ویندوز رو باز کنید و به محلی که این برنامه هارو دارین برین و دو تا صفحه cmd باز کنید و اول سرور رو اجار کنید و بعد کلاینت رو سرور اجرا شده در یک cmd کلاینت اجرا شده در یک cmd دیگرخب این فقط یک مثال ساده بود شما با کتابخانه سوکت خیلی کارها میتوانید انجام بدید خب حالا بریم سراغ این که چرا اون اول مطلب گفتم که داریم سرور و کلاینت وب سایت رو شبیه سازی میکنیم چون شما دقت کنید میبیند که اگه حتی یک نفر هم داخل یک سایت نباشه سرور سایت روشنه اینجا هم همین اگه کلاینت به سرور وصل نشه هم سرور ما به خطا نمیخوره و اگه سرور خاموش باشه جا به جا کلاینت به خطا میخوره و درست همون اتفاقی که داخل وب سایت میفته داره میفته مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوب اینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهآشنایی با مدل TCP/IP , آشنایی با مدل OSI , دیوار آتشین </description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Tue, 06 Jun 2023 14:59:51 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با مدل TCP/IP</title>
                <link>https://virgool.io/@TornLab/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D9%85%D8%AF%D9%84-tcpip-yvvhrwtybevd</link>
                <description>پروتکل TCP/IP خیلی اهمیت داره چون بدونه آن اینترنت معنا نداره و این پروتکل بر مبنای 4 لایه ساخته شده که هر 4 لایه مربوط به یکی از 7 لایه مدل OSI هست درست مثل تصویر زیر حتما از این مطلاب دیدن کنید آشنایی با مدل OSI , انواع پروتکل های TCP/IPشیوه های ارتباطی در TCP/IP : unicast (one to one) :ما در این نوع ارتباط یک فرستنده و یک گیرنده داریم مثل تصویر زیرmulticast (one to many) :در این نوع ارتباط یک فرستنده داریم و تعدادی یا یک گروه خاص گیرنده داریم درست مثل تصویر زیر Broadcast (one to all) :در این نوع شیوه ارتباطی یک نفر یک پیامی رو ارسال میکنه و کامپیوتر های دیگر قادر به دریافت پیام هستن مثل تصویر زیر مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوباینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهمفاهیم اصلی شبکه , آشنایی با مدل OSI , دیوار آتشین - Firewall</description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Wed, 05 Apr 2023 15:55:22 +0330</pubDate>
            </item>
                    <item>
                <title>آشنایی با مدل OSI</title>
                <link>https://virgool.io/@TornLab/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D9%85%D8%AF%D9%84-osi-cb7kn1liwte6</link>
                <description>مدل OSI یک سری قوانین برای کامپیوتر ها در شبکه ایجاد میکنه که باید همه از اون قوانین باید اطاعت کنن و این مدل از 7 لایه تشکیل شده :1 : Physical2 : Data Link3 : Network4 : Transport5 : session6 : Presentation7 : Applicationلایه Application برای رابط برنامه نویس بین کامپیوتر و شبکه هست لایه Presentation برای برای فرمت کردن داده ها هست یعنی داده هارو به حالت اولیه برمیگردونهلایه session برای همگام سازی و همزمان سازی هست که داده ها در طول مسیر از بین نرن لایه Transport برای تبدیل کردن بسته های بزرگ به بسته های کوچک (packet) لایه Network برای مسیریابی و آدرس دهی هست از طریق IP هست آدرس آی پی چیست ؟ (IPv4 VS IPv6)لایه Data Link برای آدرس دهی از طریق مک آدرس هست چون بعضی از سیستم ها قابلیت خوندن IP رو ندارن لایه Physical برای فیزیکی شبکه هست حالتی که کامپیوتر به شبکه وصله رو نشون میده در تصویر زیر نحوه عملکرده مدل OSI بین فرستنده و داده ها و گیرنده  میبینید ??در کامپیوتر فرستنده چه اتفاقی میفته : در لایه Application برنامه با شبکه ارتباط برقرار میکنه در لایه Presentation داده فرمت دهی میشه در لایه Session داده همزمان سازی میشه در لایه Transport بسته به بسته کوچک تبدیل میشه در لایه Network داده مسیر یابی میکنهدر لایه Data Link داده بهش مک آدرس اضافه میشه در لایه Physical بسته به گیرنده میرسه حالا در کامپیوتر گیرنده چه اتفاقی میفته : در لایه Data Link مک آدرس چک میشه اگه درست بود میره مرحله بعدی ??در لایه Network آدرس IP فرستنده و گیرنده چک میشه اگه درست بود میره مرحله بعد ??در لایه Transport بسته ما در کامپیوتر فرستنده که کوچک شده بود حالا به بسته اصلی تبدیل میشه در لایه Session همزمان سازی چک میشه چون خیلی مهمه برای این که داده های از بین نرن در لایه Presentation داده ما فرمت میشه و به حالت اولیه بر میگرده در آخر هم رابط نرم افزاری داده از مسیر شبکه با برنامه ارتباط برقرار میکنه مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوباینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهمفاهیم اصلی شبکه , انواع پروتکل های TCP/IP, کد های وضعیت پروتکل اچ تی تی پی </description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Mon, 13 Mar 2023 22:22:56 +0330</pubDate>
            </item>
                    <item>
                <title>دیوار آتشین - Firewall</title>
                <link>https://virgool.io/@TornLab/%D8%AF%DB%8C%D9%88%D8%A7%D8%B1-%D8%A2%D8%AA%D8%B4%DB%8C%D9%86-firewall-yrrbvfmmtbe4</link>
                <description>خب دوست من اگه دوست داری بدونی فایروال سیستمت چطوری کار میکنه تا آخر این مقاله همراه من باش فایروال کجا نصب میشه ؟ اول از همه بگم فایروال روی سیستم عامل یا روی وب سرور نصب میشه تفاوت فایروال با آنتی ویروس : اول از همه بگم که هردوی آن ها ویژگی امنیتی دارند . خیلی خیلی ساده بگم که فایروال از وارد شدن و خارج شدن یک سری بسته های اطلاعاتی غیر مجاز جلوگیری میکنه ولی آنتی ویروس از آلوده شدن سیستم به ویروس جلوگری میکنه توظیحات بیشتر درباره فایروال : خیل ساده بگم فایروال (فارسی : دیوار آتش) مثل یک مرز میمونه و اجازه ورود و خروج رو میده مثلا وقتی شما میخواهید که وارد یک کشور بشید نمیتوانید به صورت غیر مجاز وارد یک کشور بشید مرز اجازه نمیده دیوار آتشین هم همین کار رو میکنه از ورود غیر مجاز به سیستم جلوگیری میکنه به چه صورت با فیلتر کردن پورت ها و داده ها و خیلی از فایروال های پیشرفته حتی میان داده ها رو بررسی هم میکنند که امنیت سیستم ما بیشتر بشه و فایروال ها از لایه های مدل OSI استفاده میکنند مدل OSI مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوباینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شده تهدید های امنیتی رایج در دنیای سایبری , کد های وضعیت پروتکل اچ تی تی پی , مفاهیم اصلی شبکه </description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Sun, 12 Mar 2023 20:07:24 +0330</pubDate>
            </item>
                    <item>
                <title>کد های وضعیت پروتکل اچ تی تی پی - HTTP Status code</title>
                <link>https://virgool.io/@TornLab/%DA%A9%D8%AF-%D9%87%D8%A7%DB%8C-%D9%88%D8%B6%D8%B9%DB%8C%D8%AA-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D8%A7%DA%86-%D8%AA%DB%8C-%D8%AA%DB%8C-%D9%BE%DB%8C-http-status-code-mqj9cfathwgs</link>
                <description>کد وضعیت HTTP چیست ؟ کد وضعیت یک کد 3 رقمی هست که وقتی شما با یک مرورگر درخواست به یک سایت میزنید یک کدی اجرا میشه که ممکنه به شما نمایش داده بشه یا نشه مثل شما به یک وب سیات درخواست زدید و اون وب سایت بالا اومد یعنهی کد 200 اجرا شده ولی به شما نمایش داده نمیشه یا حتی یک صفحه پیدا نمیشه توی یک وب سایت مثلا حذف شده اون صفحه مورد نظر کد 404 اجرا میشه که به شما نمایش داده میشه درست مثل تصویر زیر شما حتا میتوانید از ابزار curl برای نمایش کد های وضعیت یک وب سایت استفاده کنید که به درد زمانی میخوره که به شما کد وضعیت نمایش داده نمیشود درست این تصویر زیر درباره ابزار curl هم یک مقاله جدا میزارم که بیشتر با این ابزار آشنا بشید خب حالا بریم که این کد هارو معرفی کنم 1 - اگر کد از 100 تا 199 باشه یعنی کد در دسته اطلاعات قرار داره 2 - اگر کد از 200 تا 299 باشه یعنی در دسته موفقیت قرار داره 3 - اگر کد از 300 تا 399 باشه یعنی در دسته تغییر مسیر قرار داره 4 - اگر کد از 400 تا 499 باشه یعنی کد در دسته خطای کلاینت قرار داره5 - اگر کد 500 تا 599 باشه یعنی کد در دسته خطای سرور قرار داره ما در نوشته زیر مهم ترین و اصلی ترین کد هاشون رو گفتیم : دسته 1 : 100 continue : اگر به این کد بر خوردید یعنی فقط بخشی از درخواست توسط سرور دریافت شده و کلاینت باید به مسیر خود ادامه بده 101 switching protocols : اگر به این کد بر خوردید یعنی سرور پروتکل را تغییر میدهد دسته 2 : 200 OK : اگر به این کد بر خوردید یعنی درخواست اوکی شد 201 created : اگر به این کد بر خوردید یعنی درخواست کامل شد و یک منبع جدید ایجاد شد 202 Accepted : اگر به این کد بر خوردید یعنی در خواست پردازش شده ولی پردازش کامل نشده 203 Non-authoritative-in Formation : اگر به این کد بر خوردید یعنی اطلاعات موجود در هدر از یک کپی محلی یا شخص ثالث هست نه از سرور اصلی 204 No content : اگر به این کد بر خوردید یعنی هیچ چیزی در درخواست موجود نیست یعنی درخواست اوکیه ولی چیزی موجود نیست که نمایش بده 205 Reset content : اگر به این کد بر خوردید یعنی مرورگر باید فرم استفاده شده برای این درخواست اضافی را پاک کند206 Partial content  : اگر به این کد بر خوردید یعنی سرور باید محدوده موجود در پاسخ را به هدر content-Range مشخص کند دسته 3 : 300 Multiple choices : اگر به این کد بر خوردید یعنی یک لیست پیوند مثلا کاربر می تواند پیوندی را انتخاب کند و به اون مکان بره که حداکثر 5 آدرس 301 Moved permanently : اگر به این کد بر خوردید یعنی صفحه درخواستی به یک آدرس اینترنتی دیگر منتقل شده است 302 Found : اگر به این کد بر خوردید یعنی صفحه درخواستی به طور موقت به یک آدرس اینترنتی دیگه منتقل شده است 303 see other : اگر به این کد بر خوردید یعنی صفحه درخواستی مورد نظر رو میتوانید در یک آدرس اینترنتی دیگه پیدا کنید 304 Not Modified : اگر به این کد بر خوردید یعنی این کد پاسخ به یک صفحه IF-Modified-Since یا IF-None-Match هست که URL از تاریخ مشخص شده تغییر نکرده است 305 Use Proxy : اگر به این کد بر خوردید یعنی باید با پراکسی به این آدرس درخواست بزنید 306 Unused : اگر به این کد بر خوردید یعنی این کد در نسخه قبلی استفاده شده است و دیگر استفاده نمیشود307 Temporary Redirect :  اگر به این کد بر خوردید یعنی صفحه درخواستی به طور موقت به یک آدرس اینترنتی دیگه منتقل شده است دسته 4‌ : 400 Bad request : اگر به این کد بر خوردید یعنی سرور درخواست رو متوجه نشد 401 Unauthorized : اگر به این کد بر خوردید یعنی صفحه درخواستی به نام کاربری و رمز عبور نیاز دارد 402 payment Required : اگر به این کد بر خوردید یعنی هنوز نمیتوانید از این کد استفاده کنید 403 Forbidden : اگر به این کد بر خوردید یعنی صفحه درخواست شده ممنوع هست 404 Not Found : اگر به این کد بر خوردید یعنی سرور نمیتواند صفحه درخواست شده رو پیدا کند 405 Method Not Allowed : اگر به این کد بر خوردید یعنی روش مشخص شده در درخواست مجاز نیست 406 Not Acceptable : اگر به این کد بر خوردید یعنی سرور میتواند فقط پاسخی ایجاد کند که توسط کلاینت پذیرفته نشده باشد 407 Proxy Authentication Required : اگر به این کد بر خوردید یعنی  شما باید قبل از فرستادن این درخواست باید با یک سرور پراکسی احراز هویت کنیم 408 Request Timeout : اگر به این کد بر خوردید یعنی درخواست بیشتر از زمانش طول کشیده است 409 conF1ict : اگر به این کد بر خوردید یعنی درخواست به دلیل تداخل تکمیل نشد 410 Gone : اگر به این کد بر خوردید یعنی صفحه درخواست شده دیگر در دسترس نیست 411 Length Required : اگر به این کد بر خوردید یعنی طول محتوا تعریف نشده است و سرور بدونه اون درخواست رو قبول نمیکنه 412 Precondition Failed : اگر به این کد بر خوردید یعنی  پیش شرط داده شده در درخواست توسط سرور به اشتباه ارزیابی شده است 413 Request Entity Too large : اگر به این کد بر خوردید یعنی سرور درخواست رو نمی پذیره چون موجودیت درخواست خیلی بزرگ هست 414 Request-uritool long : اگر به این کد بر خوردید یعنی سرور درخواست رو قبول نمیکنه چون URL بسیار طولانی هست این کد زمانی نمایش داده میشه یک درخواست را به POST را به یک درخواست GET تبدیل کنید که URL بسیار طولانی میشود 415 Unsupported Media type : اگر به این کد بر خوردید یعنی سرور درخواست را قبول نمیکنه چون نوع  رسانه پشتیبانی نمی شود 416 Requested Range NotdisFigure : اگر به این کد بر خوردید یعنی محدوده بایت درخواستی موجود نیست و خارج از محدوده است 417 ExpecTation Failed : اگر به این کد بر خوردید یعنی انتظارات داده شده در یک فیلد سر صفحه درخواست Expect نمیتواند توسط این سرور انجام شود دسته 5 دسته آخر  :500 internal server Error : اگر به این کد بر خوردید یعنی درخواست تکمیل نشد سرور با شرایط غیر منتظره ای مواجه شد 501 Not implemenTed : اگر به این کد بر خوردید یعنی درخواست تکمیل نشده سرور از عملکرد مورد نیاز پشتیبانی نمیکند 502 Bad Gateway :  اگر به این کد بر خوردید یعنی درخواست تکمیل نشد سرور یک پاسخ نامعتبر از سرور بالا دستی دریافت کرده است 503 service unavailable : اگر به این کد بر خوردید یعنی درخواست تکمیل نشد سرور به طوره موقت از کار افتاده است 504 Gateway Timeout : اگر به این کد بر خوردید یعنی زمان Gateway تمام شده است 505 HTTP Version Not supported : اگر به این کد بر خوردید یعنی سرور از نسخه پروتکل HTTP پشتیبانی نمیکند  مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوباینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهآدرس آی پی چیست ؟ (IPv4 VS IPv6) , پروتکل HTTP چیست؟ , تهدید های امنیتی رایج در دنیای سایبری</description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Tue, 07 Mar 2023 21:31:19 +0330</pubDate>
            </item>
                    <item>
                <title>تهدید های امنیتی رایج در دنیای سایبری</title>
                <link>https://virgool.io/@TornLab/%D8%AA%D9%87%D8%AF%DB%8C%D8%AF-%D9%87%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%D8%B1%D8%A7%DB%8C%D8%AC-%D8%AF%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%B3%D8%A7%DB%8C%D8%A8%D8%B1%DB%8C-lzmeequkh0lm</link>
                <description>ویروس ها : نرم افزار های هستند که برای صدمه زدن به یک سیستم به ساخته شده اند این نرم افزار ها بدونه اجازه از سیستم بر روی سیستم نصب میشوند و اجرا میشن معملا کاربران متوجه این مدل نرم افزار ها نمیشن و این نرم افزار ها بد افزار گفته میشوندکرم ها :یک نوع ویروس هستند که میتواند زیاد شن از یک سیستم به یک سیستم دیگه برند و این مدل ویروس ها معمولا خود را به نرم افزار های دیگر سیستم جا میزننداسب تورجان :این ویروس خود را یک نرم افزار بدونه خطر نشان میدهد و کاربر رو فریب میدن تا نصب کنند و اجرا کنند بعد شروع به آسیب زدن به سیستم میکند مثل تخریب سیستم یا تغیر در ساختار یک نرم افزار خاص یا اجازه دسترسی به هکر یا سرقت اطلاعات یا نابودی اطلاعات سیستم و حتا نشان دادن پیام خاصی در سیستمDOS (Denial of service) :این حمله برای از کار انداخت سیستم ها و وب سایت ها استفاده میشود به این صورت که انقدر سیستم رو به کار میگیره تا از کار بندازه سیستم روSmurf :یک نوع حملات داس هست ولی با این تفاوت که آدرس پینگ نامحدود میفرسته تا حجم بالای از درخواست ها ارسال بشه و در آخر سیستم از کار بیفتهمهندسی اجتماعی :طرف از روابط اجتماعی اعتماد کاربر رو جلب میکنه و ازش اطلاعاتی رو بیرون میکشه یا وادار به نصب یک بد افزار میکنه تشMan in the middle :هکر خودش رو بین دو ارتباط قرار میده تا اطلاعاتشون رو شوند کنهمثل این که من با یک نفر دیگه دارم تلفن حرف میزنم یک نفر بین ما قرار میگیره و حرفای ما رو میشنوهمارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوب اینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهمفاهیم اصلی شبکه , آدرس آی پی چیست ؟ (IPv4 VS IPv6) , پروتکل HTTP چیست؟</description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Mon, 27 Feb 2023 18:25:01 +0330</pubDate>
            </item>
                    <item>
                <title>پروتکل HTTP چیست؟</title>
                <link>https://virgool.io/@TornLab/%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-http-%DA%86%DB%8C%D8%B3%D8%AA-ktcma3e3axxa</link>
                <description>اگر میخواهی با مفهم پروتکل ها و پروتکل HTTP آشنا بشی مقاله انواع پروتکل های TCP/IP بخونید و اگه میخواهید حرفه ای تر با پروتکل HTTP آشنا بشید تا آخر این مقاله رو با دقت بخونید اچ تی تی پی پروتکلی هست که امکان واکشی از منابع HTML رو به ما میدهد. http مبنای هر نو مبادله داده روی وب را تشکیل می دهد و یک پروتکل کلاینت سرور هست یعنی درخواست ها رو از یک مرورگر وب آغاز میشود که به این ترتیب یک سند کامل با ترکیب سند های کوچک و جزئی واکشی میشود مثل یک متن  یا تصاویر و ویدیو ها یا اسکریپت ها و... در مرورگر وب بازسازی میشود بعدا در یک مقاله جدا درباره HTML و اسکریپت ها حرف میزنیم نحوه کار پروتکل http :کلاینت‌ها و سرورها از طریق مبادله پیام‌های بر عکس جریان داده‌ها با هم ارتباط می‌گیرند. این پیام‌ها از سوی  یک مرورگر وب که همون کلاینت هست ارسال میشوند (درخواست) نام دارد. از سوی دیگر پیام‌هایی که از سوی سرور ارسال می‌شوند، (پاسخ) نامیده می‌شوند.پروتکل HTTP کی و چطوری تعریف شد ؟ پروتکل HTTP در اوایل دهه 1990 میلادی تعریف شده و یک پروتکل قابل بسط است که در طی زمان تکامل یافته است. این پروتکل در لایه اپلیکیشن شبکه قرار دارد و روی اتصال TCP یا روی یک اتصال TCP رمزنگاری شده با TLS ارسال می‌شود. با این حال هر پروتکل انتقال پایداری می‌تواند به این منظور مورد استفاده قرار گیرد. پروتکل HTTP با توجه به بسط‌پذیری خود نه تنها برای واکشی اسناد ابرمتن بلکه برای واکشی اسناد و تصاویر یا برای ارسال محتوا به سرورها مانند نتایج یک فرم HTML نیز استفاده می‌شود. از پروتکل HTTP می‌توان برای واکشی بخش‌هایی از سند برای به‌روزرسانی صفحه‌ های وب بنا به تقاضا هم استفاده کرد.اجزای سیستم HTTP : اچ تی تی پی یک پروتکل کلاینت سرور است، یعنی درخواست‌ها از سوی یک نهاد ارسال می‌شوند که یک مرورگر وب است، اما در عمل می‌تواند هر چیز دیگری نیز باشد. برای نمونه یک ربات که وب را خزش می‌کند تا ایندکس یک موتور جستجو را گردآوری کرده و نگهداری کند نیز می‌تواند از این پروتکل بهره بگیرد.هر درخواست منفرد یا (پیام‌های بر عکس جریان داده‌ها) روی یک سرور ارسال می‌شود که آن را اداره می‌کند و یک پاسخ ارائه می‌دهد که response نام دارد. البته بین کلاینت و سرور، نهادهای زیادی وجود دارند که در مجموع واسطه‌ ها نام دارند و عملیات متفاوتی را اجرا کرده و برای نمونه به عنوان یک کش عمل می‌کنند.در عمل بین یک مرورگر و سرور برخی رایانه‌های قرار می‌گیرند که درخواست کاربر را اداره می‌کنند که شامل روترها، مودم‌ها و موارد دیگر می‌شود. به لطف طراحی لایه‌بندی‌شده وب، این موارد در لایه‌های شبکه و انتقال پنهان شده‌اند. HTTP در لایه بالا یعنی لایه اپلیکیشن قرار می‌گیرد. اما لایه‌های زیرین غالباً ارتباطی با توضیح HTTP ندارد.کلاینت: عامل کاربر به هر ابزاری گفته می‌شود که به دستور از کاربر عمل کند. این نقش به طور عمده از سوی مرورگر وب اجرا می‌شود. امکان اجرای آن از سوی برنامه‌های دیگر که از سوی مهندسان و توسعه‌دهندگان وب برای دیباگ اپلیکیشن‌ها استفاده می‌شوند نیز وجود دارد.مرورگر همیشه آن چیزی است که درخواست را آغاز می‌کند. بنابراین سرور هرگز آغازگر تبادل پیام نیست، گرچه در طی سال‌های اخیر برخی مکانیسم‌هایی به HTTP اضافه شده‌اند که پیام‌های آغازشده از سوی سرور را شبیه‌سازی می‌کنند.مرورگر برای عرضه یک صفحه وب، درخواستی ابتدایی جهت واکشی سند HTML ارسال می‌کند که یک بازنمایی از صفحه است. سپس این فایل تحلیل می‌شود و درخواست‌های متناظر دیگری برای اجرای اسکریپت‌ها، اطلاعات چیدمان صفحه CSS و منابع فرعی قرار گرفته درون صفحه که عموماً شامل تصاویر و ویدئوها است ارائه می‌شود. در ادامه مرورگر وب این منابع را با هم ترکیب می‌کند تا یک سند کامل را به کاربر عرضه کند که صفحه وب نامیده می‌شود. اسکریپت‌های اجرا شده از سوی مرورگر می‌توانند منابع بیشتری را در فازهای بعدی واکشی کنند و مرورگر بر همین اساس صفحه وب را به‌روزرسانی می‌کند.یک صفحه وب به سند ابرمتن گفته می‌شود. این به این معنی است که برخی بخش‌های متن نمایش یافته، لینک‌هایی هستند که می‌توانند فعال شوند که به طور معمول با کلیک ماوس انجام می‌یابد تا یک صفحه وب واکشی شود. به این ترتیب کاربر می‌تواند عامل کاربر خود را هدایت کند و در وب به گردش بپردازد. مرورگر این جهت‌ها را در درخواست‌های HTTP ترجمه و در ادامه پاسخ‌های HTTP را تفسیر می‌کند تا یک پاسخ روشن به کاربر بده.بعدا در یک مقاله جدا درباره CSS حرف میزنیم وب سرور : در سمت دیگر این کانال ارتباطی یک سرور قرار دارد که اسناد درخواستی از سوی کاربر را عرضه می‌کند. سرور مجازاً به صورت یک رایانه منفرد ظاهر می‌شود، اما ممکن است مجموعه‌ای از سرورها باشند که بار کاری را با هم به اشتراک بگذارند یا یک نرم‌افزار پیچیده باشد که از رایانه‌های دیگر که مسئول بخش‌های کش، پایگاه داده، یا سرورهای e-commerce پرس‌وجو کرده و سند را بسته به تقاضا به صورت کامل یا جزء به جزء تولید می‌کند.سرور حتما یک رایانه منفرد نیست، بلکه چند وهله نرم‌افزاری مختلف سرور می‌توانند روی یک رایانه منفرد میزبانی شوند. با استفاده از نسخه 1.1 پروتکل HTTP و هدر Host حتی امکان اشتراک نشانی IP یکسان نیز وجود دارد.واسطه‌ها :‌بین مرورگر وب و سرور، رایانه‌ها و دستگاه‌های بسیار زیادی قرار می‌گیرند که پیام‌های HTTP را رله می‌کنند. به دلیل ساختار لایه‌بندی‌شده وب، اغلب این دستگاه‌ها روی لایه انتقال یا شبکه یا لایه فیزیکی  عمل می‌کنند و در HTTP نمایش داده میشه و از این رو می‌توانند تأثیر عمده‌ای روی عملکرد داشته باشند. عناصری که روی لایه‌های اپلیکیشن عمل می‌کنند، عموماً واسطه‌ها نامیده می‌شوند. این موارد می‌توانند شفاف باشند و درخواست‌هایی که دریافت می‌کنند را بدون هیچ گونه دستکاری، فوروارد کنند یا این که غیر شفاف باشند و در این حالت درخواست را پیش از ارسال به سمت سرور مورد نوعی تغییر قرار می‌دهند. واسطه‌ها می‌توانند کارکردهای زیادی را اجرا کنند.کش کردن : کش می‌تواند عمومی یا خصوصی مثل کش مرورگر باشدفیلترینگ : مثل اسکن آنتی‌ویروس یا کنترل والدینمتعادل‌سازی بار : یا Load Balancing به چندین سرور امکان می‌دهد که درخواست‌های مختلف را پاسخ دهنداحراز هویت : برای کنترل دسترسی به منابع مختلف استفاده می‌شودلاگ کردن : امکان ذخیره اطلاعات تاریخی را فراهم می‌ کندخب حلا بریم چنتا سوال درباره پروتکل http را جواب بدیم : آیا http ساده هست ؟ بله با وجود پیچیدگی های که در http هست ولی بازم توسط افراد مبتدی هم درک میشود آیا http قابل بسط است ؟ هدر های HTTP که در نسخه HTTP/1.0 معرفی شده‌اند موجب می‌شوند که بسط این پروتکل و آزمایش کردن آن آسان باشد کارکرد های جدید می‌توانند حتی با یک توافق ساده بین یک کلاینت و سرور در مورد معناشناسی تازه هدرها برقرار شوند.آیا http حالت ندارد ؟ ولی بجاش نشست دارد ؟ اچ تی تی پی فاقد حالت هست یعنی هیچ پیوندی بین دو درخواست که پشت سر هم روی یک اتصال انتقال می‌یابند، وجود ندارد. این کار موجب می‌شود افرادی که می‌خواهند با صفحه‌های خاصی مانند سبد خرید سایت های فروشگاه‌ی به صورت یکپارچه تعامل پیدا کنند، با مشکل مواجه شوند. اما با این که خود HTTP فاقد حالت است،  کوکی‌های HTTP می‌توان از نشست‌های باحالت (انگلیسی : Stateful Sessions) استفاده کرد. با بهره‌گیری از خصوصیت بسط‌ پذیری هدر، کوکی‌های http به گردش کار اضافه می‌شوند و امکان ایجاد نشست را به هر درخواست http می‌دهند تا چارچوب یکسانی را با حالت مشابه به اشتراک بگذارند.اتصلات Http : یک اتصال در لایه انتقال، کنترل می‌شود و از این رو اساساً خارج از دامنه http قرار دارد. با این حال پروتکل http برای این که مبتنی بر اتصال باشد، نیازی به لایه زیربنایی انتقال ندارد، و تنها کافی است که پایدار باشد یعنی پیام‌ها را از دست ندهد یا خطایی نشان دهد از میان دو پروتکل نتایج انتقال در اینترنت، TCP پایدار است، اما UDP چنین نیست از این رو پروتکل http روی استاندارد TCP کار می‌کند که مبتنی بر اتصال است.پیش از آن که یک کلاینت و سرور بتوانند جفت درخواست و پاسخ HTTP را با هم مبادله کنند، باید یک اتصال TCP برقرار سازند و این فرایند نیازمند چندین رفت و برگشت است رفتار پیش‌فرض HTTP/1.0 این است که برای هر جفت درخواست و پاسخ HTTP یک اتصال جدید TCP باز کند. این وضعیت در زمان ارسال چنین درخواست به صورت پشت سر هم، کارآیی کمتری نسبت به اشتراک یک TCP منفرد دارد.برای رفع این نقیصه، HTTP/1.1 مفهوم Pipelining و اتصال‌های مداوم را معرفی کرده است. به این ترتیب اتصال زیربنایی TCP می‌تواند تا حدودی توسط هر Connection کنترل شود. HTTP/2.2 یک گام پا را بالا تر گذاشته و پیام‌ ها را روی یک اتصال منفرد تقسیم می‌کند و به این ترتیب اتصال TCP بهره‌ وری بالاتری پیدا می‌کند.اچ تی تی پی چه چیزهایی را می‌تواند کنترل کند ؟ماهیت بسط‌ پذیر پروتکل HTTP در طی زمان به ما این امکان را داده است که کنترل و کارکردهای بیشتری روی وب داشته باشیم. متدهای کش یا احراز هویت، کارکردهایی هستند که در ابتدا از سوی HTTP مدیریت می‌شدند. به طور عکس توانایی رهایی از قید origin تنها در دهه 2010 میلادی به این پروتکل اضافه شده است. فهرست چیز هایی که پروتکل HTTP کنترل میکند : کش کردن : نحو کش شدن سندها را می‌توان با استفاده از پروتکل HTTP کنترل کرد. سرور می‌تواند به واسطه‌ها و کلاینت‌ها در مورد این که کش کردن چطور و برای چه مدتی انجام شود، دستورالعمل بدهد. کلاینت می‌تواند به واسطه‌های بی‌د‌رنگ کش دستور دهد که سند ذخیره شده را نادیده بگیرند.رهایی از قید Origin : مرورگرهای وب برای جلوگیری از سرقت اطلاعات و دیگر مداخلات در حریم خصوصی کاربران، یک جداسازی الزامی بین وب‌سایت‌ها ایجاد می‌کنند، به این ترتیب تنها صفحه‌هایی با منشأ Origin یکسان می‌توانند به همه اطلاعات صفحه وب دسترسی داشته باشند. با این که چنین قیدی یک مزاحمت برای سرور محسوب می‌شود، اما هدرهای HTTP می‌توانند این جداسازی صریح را در سمت سرور آزاد سازند و به سند امکان دهند که یک لحاف چهل تیکه از اطلاعات باشد که از دامنه‌های مختلف تأمین می‌شوند. حتی ممکن است برخی دلایل امنیتی برای انجام این کار وجود داشته باشد.احراز هویت :‌برخی صفحه‌های وب را می‌توان محافظت کرد، به طوری که تنها کاربران خاصی بتوانند به آن‌ها دسترسی داشته باشند. فرایند ابتدایی احراز هویت می‌تواند از سوی HTTP ارائه شود، که این کار یا از طریق WWW-Authenticate و هدرهای مشابه یا با تعیین یک نشست خاص با استفاده از کوکی‌های HTTP انجام می‌یابد.پراکسی و تونلینگ : سرورها یا کلاینت‌ها معمولا روی اینترانت قرار دارند و نشانی IP واقعی‌شان رو از دیگر رایانه‌ ها پنهان می‌کنند. بعد درخواست‌های HTTP از طریق واسطه‌ ها عبور می‌کنند تا از این موانع شبکه رد شوند. البته همه پراکسی‌ها، پراکسی‌های HTTP نیستند. نشست‌ها : با استفاده از کوکی‌های HTTP به شما امکان می‌دهد که درخواست‌های HTTP را به حالت سرور پیوند دهید. با این کار نشست‌ها ایجاد می‌شوند، هر چند که HTTP ابتدایی یک پروتکل بی‌حالت هست و این وضعیت نه تنها برای مدیریت سبد خرید سایت های فروشگاه‌ی مفید است، بلکه برای هر سایتی که امکان پیکربندی خروجی خود را به کاربر می‌دهد، مفید خواهد بود.گردش HTTP : زمانی که یک کلاینت می‌خواهد با یک سرور ارتباط بگیرد، چه یک سرور نهایی و چه پراکسی بی‌درنگ باشد، مراحل زیر را اجرا می‌کند:یک اتصال TCP باز می‌کند : اتصال TCP برای فرستادن یک یا چند درخواست و دریافت یک پاسخ استفاده می‌شود. کلاینت ممکن است یک اتصال جدید باز کند، از اتصال موجود استفاده مجدد نماید یا چند اتصال TCP را به سرور برقرار بسازدارسال یک پیام HTTP : پیام‌های HTTP ‌پیش از HTTP/2 قابل خواندن از سوی هر فردی هست و با استفاده از HTTP/2 این پیام‌های ساده در فریم‌ ها جاسازی می‌شوند و به این ترتیب دیگر مستقیماً امکان خواندن آن‌ها وجود ندارد، اما اصول کار یکسان است. به مثال زیر توجه کنید :درخواست‌های HTTP : GET / HTTP/1.1
Host: developer.mozilla.org
Accept-Language: frپاسخ‌ های HTTP : HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
ETag: &amp;quot51142bc1-7449-479b075b2891b&amp;quot
Accept-Ranges: bytes
Content-Length: 29769
Content-Type: text/html

&lt;!DOCTYPE html... (here comes the 29769 bytes of the requested web page)بستن یا استفاده مجدد از اتصال برای درخواست‌ها بعدی هست معانی کد های درخواست‌های HTTP  : GET = متد  / = مسیرHTTP/1.1 = نسخه کنترل Host: developer.mozilla.org Accept-Language: fr =هدرمتد ها میتوانند ‌GET یا POST باشند که عملیاتی را تعریف می‌کند که کلاینت می‌خواهد اجرا کندهدف URL یا مسیر مطلق پروتکل و پورت و دامنه است و بر اساس کانتکست درخواست مشخص می‌شود قالب‌بندی این هدف درخواست بر اساس متدهای مختلف HTTP متفاوت استنسخه پروتکل HTTPهدر های اختیاری که اطلاعات اضافی را به سرورها انتقال می‌دهندمعانی کد های پاسخ‌ های HTTP :‌ HTTP/1.1 = نسخه کنترل 200 = کد وضعیت OK = پیام وضعیتDate: Sat, 09 Oct 2010 14:28:02 GMT Server: Apache Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT ETag: &quot;51142bc1-7449-479b075b2891b&quot; Accept-Ranges: bytes Content-Length: 29769 Content-Type: text/html = هدرنسخه پروتکل HTTP که استفاده شده استکد وضعیت (انگلیسی : Status Code) که نشان می‌دهد آیا درخواست موفق بوده یا نه و دلیل آن چیستیک پیام وضعیت که توضیح کوتاه غیر قابل استناد در مورد کد وضعیت استهدرهای HTTP مانند مواردی که در خصوص درخواست HTTP برشمردیمAPI های مبتنی بر HTTPپراستفاده‌ترین API مبتنی بر HTTP یک API به نام XMLHttpRequest است که می‌تواند برای مبادله داده‌ ها بین یک کلاینت و سرور استفاده شود Fetch API جدید و همین قابلیت‌ها را با مجموعه امکانات قدرتمندتر عرضه می‌کند.API دیگر رویدادهای ارسالی از سمت سرور هستند که یک سرویس یک‌طرفه هستند که به سرور امکان می‌دهند تا رویدادها را به کلاینت ارسال کند و از HTTP به عنوان یک سازوکار انتقالی بهره بگیرد. کلاینت با استفاده از اینترفیس EventSource یک اتصال باز کرده و دستگیره‌های رویداد را ایجاد می‌کند. مرورگر کلاینت به طور خودکار، پیام‌هایی را که روی استریم HTTP به اشیای مناسب Event می‌رسند، تبدیل می‌کند و آن‌ها را به دستگیره‌های رویدادی تحویل می‌دهد که برای آن نوع type رویداد ثبت شده‌اند و یا اگر دستگیره رویدادی برای آن نوع خاص تعیین نشده باشید، به دستگیره رویداد  تحویل می‌دهدمارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوب اینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهمفاهیم اصلی شبکه , آدرس آی پی چیست ؟ (IPv4 VS IPv6) , تهدید های امنیتی رایج در دنیای سایبری </description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Thu, 23 Feb 2023 00:05:40 +0330</pubDate>
            </item>
                    <item>
                <title>آدرس آی پی چیست ؟ (IPv4 VS IPv6)</title>
                <link>https://virgool.io/@TornLab/%D8%A2%D8%AF%D8%B1%D8%B3-%D8%A2%DB%8C-%D9%BE%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-ipv4-vs-ipv6-bxtquaic3dei</link>
                <description>آی پی یک آدرس 32 بیتی هست که به صورت اختصاصی و یگانه برای یک کامپیوتر هست پس هیچ وقت دو تا کامپیوتر آدرس آی پی هاشون یکی نیست چون اگه یکی باشه تداخل به وجود میاد. معنی 32 بیتی برای این هست که کامپپیوتر نمی تواند نوشته دیسمال رو درک کنه و کامپیوتر اون را به صورت باینری می شناسد که آدرس آی پی 32 بیت باینری خواهد بود.بعدا در مقاله جدا درباره دیسمال و باینری حرف میزنیم یک آی پی آدرس از دو بخش ساخته شده سمت چپ شناسه شبکه هست و سمت راست شناسه کامپیوتر هستحالا میخواهیم شبکه خود را آی پی دهی کنیم باید باید قوانین زیر رو رعایت کنید : قانون شماره اول : هر آدرس آی پی از چهار شماره سه رقمی تشکیل شده است که هر کدام یک اکتت را مینامند مثلا آی پی 192.168.10.101 در نظر بگرید 192 در اینجا یک رقم دیسمال است اگر آن را به باینری حساب کنید از 8 رقم تشکیل شده است پس هشت بیتی که میگفتیم این هشت بیت است که 4 تای آن میشه 32 بیت.قانون  شماره دو : اولین اکتت یک آدرس IP نمی تواند عدد 127 باشد چرا ؟‌ این رنج آیپی چیزی شامل 7 میلیون آدرس IP هست و از این 7 میلیون آدرس آی پی 127.0.0.1 استفاده میشود که برای Local host استفاده می شود که در  طراحی سایت وقتی از XAMPP استفاده میکنیم با استفاده از این آدرس مسیر روت سرور محلی تعریف میشود قانون شماره سه : شناسه میزبان نمی تواند تماما 0 یا 255 باشد چرا ؟ در صورتی که شناسه میزبان تماما 0 باشد بیانگر شناسه شبکه میباشد . نمیتوان از آن به عنوان یک آی پی مجاز در شبکه استفاده کرد یا اگر تماما 255 باشد بیانگر Broadcast Address می باشد که به عنوان آی پی مجاز نمی توان استفاده کرد . Broadcast چیست ؟ این شناسه برای اعلام وجود در کل  شبکه استفاده میشود بعدا در مقاله جدا در باره Broadcast بیشتر حرف میزنیم کلاسه های آی پی : کلاسه ها در آیپی از A تا E تقسیم میشود کلاسه A : آدرس آی پی در رنج 1 تا 126 تقسیم میشود کلاسه B : آدرس آی پی در رنج 128 تا 191 تقسیم بندی میشود کلاسه C : آدرس آی پی در رنج 192 تا 223 تقسیم بندی میشوند کلاسه D و E کمتر به کار می روند مثلا وقتی در آی پی میبینید بین یکی از عداد 126 یا 1 یا... به کار رفته بدونید از نوع کلاسه A هست آی پی های خصوصی و عمومی : آی پی های عمومی : همون آدرس هایی هستند که که در نهایت اینترنت شناسه یک کامپیوتر هست آی پی های خصوصی : آدرس های خصوصی یگانه و یکتا نیستند واسه همین در اینترنت یک آی پی مجاز شناخته نمی شوند. به این دلیل که آدرس های خصوصی وقتی ما میتوانیم در شبکه خودمون استفاده کنیم یکی دیگر هم میتونه در شبکه خود استفاده کنه مثلا Default Gateway ما در شبکه هست 192.168.1.1 پس Default Gateway یکی دیگه هم آی پیش 192.168.1.1 هست پس آی پی 192.168.1.1 یک آی پی خصوصی به حساب میاد آی پی دهی استاتیک یا دینامیک : آی پی دهی استاتیک : در این روش ما به عنوان مدیر شبکه به صورت دستی آی پی مورد نظر رو در سیستم مورد نظر تایپ کرده و به صورت کاملا دستی آن را پیکر بندی میکنیمآی پی دهی دینامیک : در این روش دستگاهی تهت عنوان DHCP در شبکه قرار میگیرد که وظیفه آی پی دهی به صورت خودکار به کامپیوتر های شبکه را بر عهده می گیرد اگر میخواهید با DHCP بیستر آشنا شید مقاله انواع پروتکل های TCP/IP را بخوانیدمعایب IPv4 : نبودن تعداد کافی آدرس آی پی به هم ریخته گی و نابسامانی جدول های روتینگ اینترنت هست به دلیل این که هر سرویس دهنده پیشوند آدرس خود را به صورت کاملا هم سطح در جدول روتینگ بک بون های اصلی ثبت کرده اند و ساختار مناسبی ندارد این مسئله باعث به هم ریختگی و نابه سامانی  جدول های روتینگ اینترنت میشود به سختی پیکربندی میشود روش اول به صورت استاتیک هست که بسیار کار سختی هست و روش دوم روش دینامیک هست که مشکل رو رفع میکند اما برای استفاده از دستگاه DHCP باید سرور DHCP رو مدریت کنیم که خیلی خوب نیست و یکی از مهم ترین مشکلات این هست که امنیت اختیاری هست چون یک سری پروتکل هستند که ارتباطی با IPSec دارند که آنها اختیاری هست ولی امنیت ما اجباری هست پس مشکل امنیتی هم داریم راه حل آی پی ورژن 6 (IPv6) : تعداد بسیار زیادی آدرس آی پی وجود دارد دسته بندی سلسله مراتبی جدول روتینگ بک بون های اینترنت هست که نظم خوبی را ایجاد میکند آی پی ورژن 6 دیگه مشکل پیکر بندی DHCP را ندارد IPv6 به خودی خود قابلیت مدریت سرور DHCP را دارددر آی پی ورژن 6 IPSec  اجباری هست چون جزوی از ساختارش هست پس مشکل امنیتی مون هم حل شد ساختار IPv6 : این آی پی از 128 بیت طول دارد یعنی در این آدرس آی پی 128 تا مقدار 0و1 وجود دارد  و بسیار طولانی هست هست که محاسبه و تبدیل آن مشکل هست  به همین دلیل آن ها رو به 16 بیت تقسیم میکنیم که می شود 8 قطعه 16 بیتی و به جای نمایش دیسمال آن را به صورت هگزا دیسمال نشان میدهیم و آی پی های خصوصی ورژن 6 اولش با FC یا FD شروع میشود بعدا در مقاله جدا درباره هگزا دیسمال حرف میزنیم مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوب اینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهمفاهیم اصلی شبکه , پروتکل HTTP چیست؟ , تهدید های امنیتی رایج در دنیای سایبری </description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Wed, 22 Feb 2023 05:37:52 +0330</pubDate>
            </item>
                    <item>
                <title>انواع پروتکل های TCP/IP</title>
                <link>https://virgool.io/@TornLab/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D9%87%D8%A7%DB%8C-tcpip-r1rcjq6oyb5h</link>
                <description> مدل TCP/IPپروتکل چیست ؟ پروتکل یک سری قوانین هست که در دنیای اینترنت برای برقراری ارتباط باید اون قوانین رو پشت سر بزاریم مثلا وقتی شما با دوستت میخواهی حرف بزنی باید شمارش رو داشته باشی در غیر این صورت نمیتوانی ارتباط برقرار کنید در دنیای اینترنت هم همینطور هست پروتکل TCP/IP یکی از رایج ترین پروتکل ها هست که بدونه اون اینترنت وجود نداره خب حالا میخواهیم هر کدام از این پروتکل ها رو به شما معرفی کنیم FTP پروتکل انتقال فایل هست. این پروتکل وظیفه انتقال اتصال گرا و مطمئن فایل ها بین کلاینت و سرور رو دارد و این پروتکل از پورت TCP21 برای کنترل استفاده میکنه و از پورت TCP20 برای انتقال داده استفاده میکنه TFTPاین پروتکل انتقال جزئی فایل هست. در این نوع پروتکل انتقال فایل  از نوع UDP هست و یک پروتکل ساده و کوچک هست که شرایط رو اول برای بروزرسانی دیوایس های شبکه مثل روتر و سویچ ها کاربرد دارد و یکی دیگر از کاربرد های رایج این پروتکل انتقال داده های مورد نیاز برای بوت کردن سیستم های بدونه حافظه در داخل شبکه هست چون در شبکه بعضی از کامپیوتر ها هارد ندارن پس این کامپیوتر ها رو میشه از طریق شبکه بوت کرد به این شکل که با ارسال بسته های کوچک از طریق مسیر  شبکه صورت میگیرد و این پروتکل از پورت UDP 69 استفاده میکند HTTPاین پروتکل برای انتقال ابر متن هست این پروتکل در اصل برای انتقال اسناد وب ایجاد شده ولی الان توانایی ارسال سایر فایل ها رو داره به طور کلی نسخه های جدید تر هم داره که برای انتقال فایل ها نسبت به FTP بهتر هست و این پروتکل از پورت TCP80 استفاده میکنه و این پورت قابل تغییر هست وقتی در مرورگر هستید میتوانید با گذاشتن دو نقطه میتوانید شماره پورت را وارد کنیم اگه میخواهید با پروتکل HTTP بیشتر آشنا شید مقاله پروتکل HTTP چیست؟ بخونید HTTPS این پروتکل همون کار HTTP رو انجام میده ولی از SSL استفاده میکنه SSL باعث میشه که در ابتدا سرور تشخیص هویت به شه و اعتبار ان توسط مرورگر تایید به شه و بعد جابجایی انجام بگیره و اطلاعات رمزنگاری میشه پس امنیت بالایی داره. پروتکل HTTPS از پورت TCP443 استفاده میکنه مثلا  وقتی شما در یک سایت شماره کارت رو وارد میکنید پروتکل HTTPS میاد رمزنگاری میکنه تا هکر به راحتی نتونه اطلاعات شما رو مثل شماره کارت یا پسورد یا... رو شنود کنه ولی پروتکل HTTP رمزنگاری رو انجام نمیده پس اطلاعات کاربر به راحتی توسط هکر شنود میشه  NTP پروتکل زمان شبکه هست. برای همگام سازی و بروزرسانی زمان در شبکه استفاده میشود. کامپیوتر ها از منابع شبکه NTP هستند که زمان خود را بروزرسانی می کنند این سرور ها میتوانند به صورت محلی باشه یا بر روی اینترنت موجود باشه یا حتی روی ماهواره هم میتواند موجود باشد. سرور NTP بسیار دقیق هست که حتی میلی ثانیه رو هم همگام سازی میکنه و از پورت UDP123 استفاده میکنه POP3 &amp; IMAP4 این دو پروتکل عملکرد دریافت ایمیل را دارند با این تفاوت که POP3 فقط قادر به بازیابی پوشه اینباکس از ایمیل سرور رو دارد. در  صورتی که نیاز به پوشه های سازمان یافته دیگر داشته باشیم آنها را به صورت لوکال بر روی رایانه ذخیره میکنه در حالی که پروتکل IMAP4 توانایی بازیابی تمام پوشه هارو دارد و مشکل ذخیره لوکال را برطرف میکند. POP3 از پورت TCP110 استفاده میکند IMAP4 از پورت TCP143 استفاده میکند SMTP این پروتکل برای برای ارسال ایمیل هست. این پروتکل ساده برای انتقال ایمیل هست که از پورت TCP25 استفاده میکنه DHCP پروتکل پیکر بندی دینامیک میزبان هست. کاری که انجام میده میاد به صورت خودکار به میزبان ها که در شبکه وجود دارند آدرس آی پی میدهد و آنها رو پیکربندی میکند و زحمت مدیر شبکه رو کم میکند. این پروتکل از پورت UDP68 , UDP67 استفاده میکند اگه میخواهی بیشتر با نحوه آی پی دهی آشنا بشی مقاله آدرس آی پی چیست ؟ (IPv4 VS IPv6) بخون DNS این پروتکل به معنی سیستم نام گذاری دامین که یک سرویس نام گذاری استاندارد هست و به کامپیوتر ها اجازه میده تا نام های دامنه رو تحلیل یا ثبت کند. کامپیوتر ها آدرس آی پی رو میشناسند ولی به دلیل حفظ نکردن آی پی ها میتوانیم از طریق دامین به وب سایت ها و کامپیوتر ها وارد شویم. این سرویس عمل تبدیل نام دامنه به آدرس آی پی و در مواردی هم معکوسش را انجام میدهد و از پورت شماره 53 استفاده میکند که در عمل Lookup  یا همون ترجمه از طریق UDP انجام میدهد و عمل انتقال اطلاعات در پایگاه داده از راه TCP انجام میشود آدرس آی پی چیست ؟ (IPv4 VS IPv6)Telnet یک پروتکل شبیه ساز پایانه هست که به یک سیستم اجازه دسترسی به صورت ریموت را میدهد این پروتکل همچنین میتواند نرم افزاری برای کنترل و مدیریت دیوایس های شبکه و سیستم عامل ها باشد و از پورت TCP23 استفاده میکند SSHاین پروتکل همون کار Telnet رو انجام میدهد ولی با امنیت بالا. پروتکل Telnet اطلاعات رو به صورت متن ساده ارسال میکند و دریافت میکند پس امنیتش پاین هست. در حالی که SSH از عمل رمزنگاری را بر اساس گواهینامه ها و تشخیص هویت سرور به کلاینت انجام میده پس امنیتش بالاست و از پورت TCP22 استفاده میکند SNMP پروتکل مدیریت ساده شبکه هست این پروتکل برای مدیریت شبکه استفاده میشود دیوایس های شبکه دارای نماینده هستند نماینده ها اطلاعات رو جمع آوری می کنند و این اطلاعات به نرم افزار های مدیریت SNMP ارسال میشود این نرم افزار ها برای جمع آوری اطلاعات و بررسی و تحلیل وقایع شبکه طراحی شده اند تابه مدیریت شبکه کمک کند و از پورت UDP161 استفاده میکند وقتی میگیم نماینده فکر نکنید این نماینده ها به صورت فیزیکی هستند نه به صورت فیزیکی نیستند SIP &amp; RTPاین دو پروتکل برای انتقال صدا بروی آی پی استفاده میشود. پروتکل SIP ایجاد تغییر و پایان دادن به یک Session یا نشست هست نشست مثل کنفرانس,آموزش از راه دور و... پروتکل RTP وظیفه دارد تا برای این نشست ها یک انتقال پایان به پایان را به وجود آورد. پس اینگونه میتوان نتیجه گرفت SIP وظیفه ایجاد نشست رو دارد و RTP وظیفه ایجاد انتقال را بر عده داردTLSیک پروتکل برای برقراری و ایجاد یک ارتباط امن بین کلاینت و سرور میباشد. این پروتکل توانایی تشخیص هویت و برقراری ارتباط رمزنگاری شده بین کلاینت و سرور را دارد و کلاینت و سرور برای برقراری ارتباط باید یک سری اطلاعات به هم بدهند تا هویت همدیگه رو بشناسند و این اطلاعات به صورت رمزنگاری شده هستند تا اگه بین مسیر هکر داشت شنود میکرد نتونه اطلاعات رو ببینه.  مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوب اینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شده مفاهیم اصلی شبکه , تهدید های امنیتی رایج در دنیای سایبری , کد های وضعیت پروتکل اچ تی تی پی</description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Tue, 21 Feb 2023 02:50:26 +0330</pubDate>
            </item>
                    <item>
                <title>مفاهیم اصلی شبکه</title>
                <link>https://virgool.io/@TornLab/%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D8%A7%D8%B5%D9%84%DB%8C-%D8%B4%D8%A8%DA%A9%D9%87-zz3v582pcq4i</link>
                <description>شبکه چیست ؟ شبکه یعنی یک هاست وصل به چند کامپیوتر مانند تصویر زیر ??هاست چیست ؟هاست (فارسی : سرویس میزبان) میتواند هر دیوایسی که دارای کارت شبکه هست باشد که به کامپیوتر ها اجازه ارتباط بدهند منابع شبکه چیست ؟ منابع شبکه همان ویدیو های که در واتسآپ یا تلگرام یا... به اشتراک میزاریم یا هرچیز دیگری که به اشتراک میزاریم چه در مدیا چه با هرچیز دیگری میگیم منابع شبکه به طور کامل اگه بخواهیم حساب کنیم مثلا ما در تماس تصویری یا در چت که باهم در ارتباطیم در اصل در یک شبکه ایجاد کردیم رابطه شبکه چیست ؟ آن چیزی که باعث میشه اتصال به شبکه انجام شود میگیم رابط شبکه مثلا وقتی کیس کامپیوتر رو به مانیتور وصل کردیم با کابل HDMI کابل HDMI در اصل یک رابط شبکه هستانواع شبکه از نظر مدیریت منابع : Client server : در این نو شبکه هر کامپیوتر به طور ویژه یک سرور دارند و از منابعش دارن استفاده میکنن  و همیشه یکی سرور و بقیه کلاینت هستند و بیشتر از 10 تا کلاینت نمیشه داشت و بیشتر از 1 سرور نمیتوان داشت مثلا وقتی کیس کامپیوتر رو به دو تا مانیتور یا بیشتر یا کمتر وصل کردید کیس میشه سرور و مانیتور ها میشن کلاینت که بیشتر از 10 تا هم نمیشه باشند Peer To peer :در این نو شبکه هر کامپیوتر یک سرور و کلاینت جدا دارند مثلا وقتی که ما دو تا کیس داریم و هرکدام رو به یک مانیتور وصل کردیم یک کامپیوتر میشه سرور و کلاینت و کامپیوتر دیگر هم همینطور میشه به صورت جداگانه انواع شبکه از نظر گسترده تحت پوشش : LAN (Local Area Network) : لن (فارسی : شبکه محلی) این شبکه یک شبکه کوچک محلی هست CAM (Campus Area Network) : (فارسی :‌ شبکه دانشگاهی) این شبکه وقتی به وجود میاد که چند ساختمان به صورت مجاور به یک دیگر از تریق مسیر ارتباطی به شبکه متصل باشند MAN (Metropolitan Area Network) : (فارسی : شبکه شهری) در این شبکه ساختمان ها به صورت غیر مجاور ولی در محدوده  شهری از تریق مسیر شبکه با یک دیگر در اتباط هستند WAN (Wide Area Network) : (فارسی : شبکه پهناور) این شبکه بین ناحیه ای پهناور گسترش یافته که چند کشور یا قاره رو پوشش میده چگونه شبکه ایجاد کنیم ؟ همین طور که گفتیم وقتی با دو نفر داریم حرف میزنیم خودش یک شبکه هست که برای ایجاد شبکه میتوانیم از مدیا یا امواج وایرلس RF یا از طریف کابل مسی یا نوری کمک بگریم  خب در اولین مقالمون با مفاهیم اصلی شبکه آشنا شدیم مارو در شبکه های اجتماعی زیر دنبال کنید ??یوتیوب اینستاگرامتلگرام ساب ردیتخب تا مقاله های دیگر خدانگهدار ??مقاله های پیشنهاد شدهانواع پروتکل های TCP/IP , آدرس آی پی چیست ؟ (IPv4 VS IPv6) , پروتکل HTTP چیست؟</description>
                <category>TornLab</category>
                <author>TornLab</author>
                <pubDate>Sun, 19 Feb 2023 20:39:40 +0330</pubDate>
            </item>
            </channel>
</rss>